static int i_comp(const void *s1, const void *s2) { const s_rec *sr1 = (const s_rec *) s1; const s_rec *sr2 = (const s_rec *) s2; return Compare2(sr1->memo.num, sr2->memo.num, sr1, sr2) * sort_order; }
int operatorTest(void) { TestUtil testFramework("ObsID", "== Operator", __FILE__, __LINE__); std::string failMesg; gpstk::ObsID Compare1(gpstk::ObsID::otRange, gpstk::ObsID::cbL1, gpstk::ObsID::tcCA); gpstk::ObsID Compare2(gpstk::ObsID::otRange, gpstk::ObsID::cbL1, gpstk::ObsID::tcCA); gpstk::ObsID Compare3(gpstk::ObsID::otDoppler, gpstk::ObsID::cbL1, gpstk::ObsID::tcCA); failMesg = "Are equivalent objects equivalent?"; testFramework.assert(Compare1 == Compare2, failMesg, __LINE__); failMesg = "Are non-equivalent objects equivalent?"; testFramework.assert(!(Compare1 == Compare3), failMesg, __LINE__); testFramework.changeSourceMethod("!= Operator"); failMesg = "Are non-equivalent objects not equivalent?"; testFramework.assert(Compare1 != Compare3, failMesg, __LINE__); failMesg = "Are equivalent objects not equivalent?"; testFramework.assert(!(Compare1 != Compare2), failMesg, __LINE__); return testFramework.countFails(); }
//========================================================================================================================== // initializationTest ensures the constructors set the values properly //========================================================================================================================== int initializationTest(void) { gpstk::TestUtil testFramework( "SatID", "Constructor", __FILE__, __LINE__); gpstk::SatID Compare1(5, gpstk::SatID::SatelliteSystem (1)); testFramework.assert(Compare1.id == 5, "Explicit constructor did not set the correct id value", __LINE__); testFramework.assert(Compare1.system == gpstk::SatID::SatelliteSystem(1), "Explicit constructor did not set the correct SatelliteSystem", __LINE__); gpstk::SatID Compare2(0, gpstk::SatID::SatelliteSystem (12)); testFramework.assert(Compare2.id == 0, "Explicit constructor did not set the correct id value", __LINE__); testFramework.assert(Compare2.system == gpstk::SatID::SatelliteSystem(12), "Explicit constructor did not set the correct SatelliteSystem", __LINE__); gpstk::SatID Compare3(-1, gpstk::SatID::SatelliteSystem (-1)); testFramework.assert(Compare3.id == -1, "Explicit constructor did not set the correct id value", __LINE__); testFramework.assert(Compare3.system == gpstk::SatID::SatelliteSystem(-1), "Explicit constructor did not set the correct SatelliteSystem", __LINE__); return testFramework.countFails(); }
static PetscErrorCode CheckMatrices(Mat A,Mat B,Vec left,Vec right,Vec X,Vec Y,Vec X1,Vec Y1) { PetscErrorCode ierr; Vec *ltmp,*rtmp; PetscFunctionBegin; ierr = VecDuplicateVecs(right,2,&rtmp);CHKERRQ(ierr); ierr = VecDuplicateVecs(left,2,<mp);CHKERRQ(ierr); ierr = MatScale(A,PETSC_PI);CHKERRQ(ierr); ierr = MatScale(B,PETSC_PI);CHKERRQ(ierr); ierr = MatDiagonalScale(A,left,right);CHKERRQ(ierr); ierr = MatDiagonalScale(B,left,right);CHKERRQ(ierr); ierr = MatMult(A,X,ltmp[0]);CHKERRQ(ierr); ierr = MatMult(B,X,ltmp[1]);CHKERRQ(ierr); ierr = Compare2(ltmp,"MatMult");CHKERRQ(ierr); ierr = MatMultTranspose(A,Y,rtmp[0]);CHKERRQ(ierr); ierr = MatMultTranspose(B,Y,rtmp[1]);CHKERRQ(ierr); ierr = Compare2(rtmp,"MatMultTranspose");CHKERRQ(ierr); ierr = VecCopy(Y1,ltmp[0]);CHKERRQ(ierr); ierr = VecCopy(Y1,ltmp[1]);CHKERRQ(ierr); ierr = MatMultAdd(A,X,ltmp[0],ltmp[0]);CHKERRQ(ierr); ierr = MatMultAdd(B,X,ltmp[1],ltmp[1]);CHKERRQ(ierr); ierr = Compare2(ltmp,"MatMultAdd v2==v3");CHKERRQ(ierr); ierr = MatMultAdd(A,X,Y1,ltmp[0]);CHKERRQ(ierr); ierr = MatMultAdd(B,X,Y1,ltmp[1]);CHKERRQ(ierr); ierr = Compare2(ltmp,"MatMultAdd v2!=v3");CHKERRQ(ierr); ierr = VecCopy(X1,rtmp[0]);CHKERRQ(ierr); ierr = VecCopy(X1,rtmp[1]);CHKERRQ(ierr); ierr = MatMultTransposeAdd(A,Y,rtmp[0],rtmp[0]);CHKERRQ(ierr); ierr = MatMultTransposeAdd(B,Y,rtmp[1],rtmp[1]);CHKERRQ(ierr); ierr = Compare2(rtmp,"MatMultTransposeAdd v2==v3");CHKERRQ(ierr); ierr = MatMultTransposeAdd(A,Y,X1,rtmp[0]);CHKERRQ(ierr); ierr = MatMultTransposeAdd(B,Y,X1,rtmp[1]);CHKERRQ(ierr); ierr = Compare2(rtmp,"MatMultTransposeAdd v2!=v3");CHKERRQ(ierr); ierr = VecDestroyVecs(2,<mp);CHKERRQ(ierr); ierr = VecDestroyVecs(2,&rtmp);CHKERRQ(ierr); PetscFunctionReturn(0); }
//========================================================================================================================== // isValidTest checks that the isValid method returns the proper value //========================================================================================================================== int isValidTest(void) { gpstk::TestUtil testFramework( "SatID", "isValid()", __FILE__, __LINE__); gpstk::SatID Compare1(5 , gpstk::SatID::SatelliteSystem(1) ); gpstk::SatID Compare2(1 , gpstk::SatID::SatelliteSystem(14)); gpstk::SatID Compare3(-1 , gpstk::SatID::SatelliteSystem(-1)); gpstk::SatID Compare4(100, gpstk::SatID::SatelliteSystem(-1)); gpstk::SatID Compare5(0 , gpstk::SatID::SatelliteSystem(1) ); gpstk::SatID Compare6(32 , gpstk::SatID::SatelliteSystem(1) ); gpstk::SatID Compare7(50 , gpstk::SatID::SatelliteSystem(1) ); gpstk::SatID Compare8(0 , gpstk::SatID::SatelliteSystem(1) ); gpstk::SatID Compare9(-3 , gpstk::SatID::SatelliteSystem(1) ); testFramework.assert( Compare1.isValid(), "isValid returned false for a valid SatID" , __LINE__); testFramework.assert( Compare2.isValid(), "isValid returned false for a valid undefined SatSys" , __LINE__); testFramework.assert(!Compare3.isValid(), "isValid returned true for an invalid SatSys with negative ID" , __LINE__); testFramework.assert(!Compare4.isValid(), "isValid returned true for an invalid SatSys with triple digit ID", __LINE__); testFramework.assert(!Compare5.isValid(), "isValid returned true for an invalid SatSys with zero ID" , __LINE__); testFramework.assert( Compare6.isValid(), "isValid returned false for an valid GPS SatSys" , __LINE__); testFramework.assert(!Compare7.isValid(), "isValid returned true for a GPS SatSys with ID > 32" , __LINE__); testFramework.assert(!Compare8.isValid(), "isValid returned true for a GPS SatSys with 0 ID" , __LINE__); testFramework.assert(!Compare9.isValid(), "isValid returned true for a GPS SatSys with negative ID" , __LINE__); return testFramework.countFails(); }
/// Constructor. /// \param comp1 The predicate (less) for the first variable, if needed. /// \param comp2 The predicate (less) for the second variable, if needed. /// \param comp3 The predicate (less) for the third variable, if needed. TableFunction3(const Compare1& comp1 = Compare1(), const Compare2& comp2 = Compare2(), const Compare3& comp3 = Compare3()) : MapType(comp1), default_(comp2, comp3) {}
/// Constructor. /// \param comp1 The predicate (less) for variable 1, if needed. /// \param comp2 The predicate (less) for variable 2, if needed. TableFunction2(const Compare1& comp1 = Compare1(), const Compare2& comp2 = Compare2()) : MapType(comp1), default_(comp2) {}
int operatorTest(void) { gpstk::TestUtil testFramework( "ValidType", "== Operator", __FILE__, __LINE__ ); std::string failMesg; gpstk::ValidType<float> Compare1 (6.); gpstk::ValidType<float> Compare2 (6.); gpstk::ValidType<float> Compare3 (8.); gpstk::ValidType<int> Compare4 (6); gpstk::ValidType<float> vfloat; failMesg = "Are two equvalent objects equal?"; testFramework.assert(Compare1 == Compare2, failMesg, __LINE__); failMesg = "Are two non-equvalent objects equal?"; testFramework.assert(Compare1 != Compare3, failMesg, __LINE__); vfloat = 7.; testFramework.changeSourceMethod("= Operator"); failMesg = "Did the = operator store the value correctly?"; testFramework.assert(vfloat.get_value() == 7., failMesg, __LINE__); failMesg = "Did the = operator set the object as valid?"; testFramework.assert(vfloat.is_valid(), failMesg, __LINE__); testFramework.changeSourceMethod("+= Operator"); vfloat += 3.; failMesg = "Did the += operator store the value correctly?"; testFramework.assert(vfloat.get_value() == 10., failMesg, __LINE__); failMesg = "Did the += operator change the object's valid bool?"; testFramework.assert(vfloat.is_valid(), failMesg, __LINE__); testFramework.changeSourceMethod("-= Operator"); vfloat -= 5.; failMesg = "Did the -= operator store the value correctly?"; testFramework.assert(vfloat.get_value() == 5., failMesg, __LINE__); failMesg = "Did the -= operator change the object's valid bool?"; testFramework.assert(vfloat.is_valid(), failMesg, __LINE__); testFramework.changeSourceMethod("<< Operator"); vfloat = 11; std::stringstream streamOutput; std::string stringOutput; std::string stringCompare; streamOutput << vfloat; stringOutput = streamOutput.str(); stringCompare = "11"; failMesg = "Did the << operator ouput valid object correctly?"; testFramework.assert(stringCompare == stringOutput, failMesg, __LINE__); streamOutput.str(""); // Resetting stream vfloat.set_valid(false); streamOutput << vfloat; stringOutput = streamOutput.str(); stringCompare = "Unknown"; failMesg = " Did the << operator output invalid object correctly?"; testFramework.assert(stringCompare == stringOutput, failMesg, __LINE__); return testFramework.countFails(); }