[3Depict/f16] * Apply upstream patch

mycae mycae at fedoraproject.org
Fri Apr 6 14:39:17 UTC 2012


commit ec40d31be4bdddcac1ae7156955c1b20ec0484e1
Author: mycae <mycae at yahoo>
Date:   Fri Apr 6 15:31:33 2012 +0100

    * Apply upstream patch

 3Depict-0.0.10-fix-value-shuffle-abort.patch |  127 ++++++++++++++++++++++++++
 3Depict.spec                                 |    6 +
 2 files changed, 133 insertions(+), 0 deletions(-)
---
diff --git a/3Depict-0.0.10-fix-value-shuffle-abort.patch b/3Depict-0.0.10-fix-value-shuffle-abort.patch
new file mode 100644
index 0000000..4c07b6e
--- /dev/null
+++ b/3Depict-0.0.10-fix-value-shuffle-abort.patch
@@ -0,0 +1,127 @@
+diff -r c4664e47d2a1 src/APTClasses.h
+diff -r c4664e47d2a1 src/filters/transform.cpp
+--- src/filters/transform.cpp	Wed Apr 04 12:29:05 2012 +1000
++++ src/filters/transform.cpp	Fri Apr 06 12:54:27 2012 +0100
+@@ -891,7 +891,7 @@
+ 		progress.filterProgress=0;
+ 		progress.stepName=TRANS("Collate");
+ 		progress.maxStep=3;
+-		if((*callback)(true))
++		if(!(*callback)(true))
+ 			return ERR_CALLBACK_FAIL;
+ 		//we have to cross the streams (I thought that was bad?) 
+ 		//  - Each dataset is no longer independant, and needs to
+@@ -1644,17 +1644,30 @@
+ bool rotateTest();
+ bool translateTest();
+ bool scaleTest();
++bool shuffleTest();
++
++
++class MassCompare
++{
++	public:
++		inline bool operator()(const IonHit &h1,const IonHit &h2) const
++		{return h1.getMassToCharge()<h2.getMassToCharge();};
++};
+ 
+ bool TransformFilter::runUnitTests()
+ {
+ 	if(!rotateTest())
+ 		return false;
++
+ 	if(!translateTest())
+ 		return false;
+ 
+ 	if(!scaleTest())
+ 		return false;
+-	
++
++	if(!shuffleTest())
++		return false;
++
+ 	return true;
+ }
+ 
+@@ -1926,4 +1939,81 @@
+ 	return true;
+ }
+ 
++bool shuffleTest() 
++{
++	//Simulate some data to send to the filter
++	vector<const FilterStreamData*> streamIn,streamOut;
++	IonStreamData *d;
++
++	RandNumGen rng;
++	rng.initTimer();
++
++	const unsigned int NUM_PTS=1000;
++
++	unsigned int span[]={ 
++			5, 7, 9
++			};	
++	d=synthDataPoints(span,NUM_PTS);
++	streamIn.push_back(d);
++
++	//Set up the filter itself
++	//---
++	TransformFilter *f=new TransformFilter;
++
++	bool needUp;
++	//Switch to shuffle mode
++	TEST(f->setProperty(0,KEY_MODE,
++			TRANS(TRANSFORM_MODE_STRING[MODE_VALUE_SHUFFLE]),needUp),"refresh error code");
++	//---
++
++
++	//OK, so now run the shuffle 
++	//Do the refresh
++	ProgressData p;
++	TEST(!f->refresh(streamIn,streamOut,p,dummyCallback),"refresh error code");
++	delete f;
++
++	TEST(streamOut.size() == 1,"stream count");
++	TEST(streamOut[0]->getStreamType() == STREAM_TYPE_IONS,"stream type");
++	TEST(streamOut[0]->getNumBasicObjects() == d->data.size(),"Ion count invariance");
++
++	TEST(streamOut[0]->getNumBasicObjects() == d->data.size(),"Ion count invariance");
++
++	IonStreamData *outData=(IonStreamData*)streamOut[0];
++
++	//Check to see that the output masses each exist in the input,
++	//but are not in  the same sequence
++	//---
++	
++
++	bool sequenceDifferent=false;	
++	for(size_t ui=0;ui<d->data.size();ui++)
++	{
++		if(d->data[ui].getMassToCharge() == outData->data[ui].getMassToCharge())
++		{
++			sequenceDifferent=true;
++			break;
++		}
++	}
++	TEST(sequenceDifferent,
++		"Should be shuffled - Prob. of sequence being identical in both orig & shuffled cases is very low");
++	//Sort masses
++	MassCompare cmp;
++	std::sort(outData->data.begin(),outData->data.end(),cmp);
++	std::sort(d->data.begin(),d->data.end(),cmp);
++
++
++	for(size_t ui=0;ui<d->data.size();ui++)
++	{
++		TEST(d->data[ui].getMassToCharge() == outData->data[ui].getMassToCharge(),"Shuffle + Sort mass should be the same");
++	
++	}
++
++
++
++	delete streamOut[0];
++	delete d;
++	return true;
++}
++
+ #endif
diff --git a/3Depict.spec b/3Depict.spec
index 7ab11dc..e18b9fb 100644
--- a/3Depict.spec
+++ b/3Depict.spec
@@ -38,6 +38,8 @@ Patch0: %{name}-%{version}-manual-pdf-loc.patch
 Patch1: %{name}-%{version}-font-path.patch
 #libpng API change patch
 Patch2: %{name}-%{version}-png-gray.patch
+#post-release patch to fix transform->value shuffle uncond. abort.
+Patch3: %{name}-%{version}-fix-value-shuffle-abort.patch
 
 %description
 This software is designed to help users visualize and analyze 3D point clouds
@@ -52,6 +54,7 @@ useful for general scalar valued point data purposes.
 %patch0
 %patch1
 %patch2
+%patch3
 
 %build
 %configure --disable-debug-checks --enable-openmp-parallel
@@ -119,6 +122,9 @@ rm -rf %{buildroot}
 
 
 %changelog
+* Fri Apr 6 2012 D Haley <mycae(a!t)yahoo.com> - 0.0.10-2
+- Add post-release patch from upstream mercurial (http://threedepict.hg.sourceforge.net/hgweb/threedepict/threedepict/rev/4583c3a39b82)
+
 * Sun Apr 1 2012 D Haley <mycae(a!t)yahoo.com> - 0.0.10-1
 - Update to 0.0.10
 


More information about the scm-commits mailing list