269int main(
int argC,
char* argV[])
272 WindowsErrorPopupBlocker();
289 std::string testConfig =
"install";
292 std::cout <<
"Too Many Input Parameters" << std::endl;
296 testConfig = argV[ 1];
297 std::cout <<
"test configuration = \'" << testConfig <<
"\'"<< std::endl;
301 testConfig =
"parser";
304 if (testConfig ==
"install") testLevel = 1;
305 if (testConfig ==
"parser" ) testLevel = 2;
306 if (testConfig ==
"parsers") testLevel = 2;
307 if (testConfig ==
"solver" ) testLevel = 3;
308 if (testConfig ==
"solvers") testLevel = 3;
309 if (testConfig ==
"release") testLevel = 4;
310 if (testConfig ==
"nightlyBuild") testLevel = 4;
311 if (testConfig ==
"all") testLevel = 4;
312 if (testConfig ==
"NB") testLevel = 4;
313 if (testConfig ==
"nb") testLevel = 4;
320 PARSER_TESTS =
false;
325 SOLVER_TESTS =
false;
334 PARSER_TESTS =
false;
347 if (BASIC_TESTS) std::cout <<
"Perform basic tests" << std::endl;
350 std::cout <<
"Perform thorough solver tests" << std::endl;
352 std::cout <<
"Perform simple solver tests" << std::endl;
354 if (PARSER_TESTS) std::cout <<
"Perform parser tests" << std::endl;
355 if (OTHER_TESTS) std::cout <<
"Perform other tests" << std::endl;
356 std::cout << std::endl << std::endl;
360 cout <<
"START UNIT TEST" << endl;
394 std::string *nodeNames1 = NULL;
395 std::string *nodeNames2 = NULL;
399 std::string osilFileName;
400 std::string osolFileName;
401 std::string osrlFileName;
402 std::string nlFileName;
403 std::string mpsFileName;
406 ostringstream unitTestResult;
407 ostringstream unitTestResultFailure;
410 const char dirsep = CoinFindDirSeparator();
413 dataDir = dirsep ==
'/' ?
"../data/" :
"..\\data\\";
415 dataDir =
"C:\\datafiles\\research\\OS\\OS-trunk-work\\OS\\data\\";
420if(BASIC_TESTS ==
true){
424 std::cout << endl <<
"TEST " << ++nOfTest <<
": Try to read a sample file" << endl << endl;
430 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincLinearByRow.osil";
432 std::cout <<
"The file is: " ;
433 std::cout << osilFileName << std::endl;
434 osil = fileUtil->getFileAsString( osilFileName.c_str() );
435 std::cout <<
"Done reading the test file" << std::endl;
436 osinstance = osilreader->readOSiL( osil);
438 unitTestResult <<
"TEST " << nOfTest <<
": Reading files successfully" << std::endl;
439 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
449 unitTestResultFailure <<
"Sorry Unit Test Failed Test " << nOfTest <<
": Reading from file " + eclass.errormsg << endl;
451 unitTestResultFailure <<
"Since we can't read files we are terminating" << endl;
452 cout << unitTestResultFailure.str() << endl << endl;
453 cout <<
"Conclusion: FAILURE" << endl;
454 if (fileUtil != NULL)
459 if (osilreader != NULL)
464 if (osilwriter != NULL)
474 cout << endl <<
"TEST " << ++nOfTest <<
": Lossless I/O" << endl << endl;
479 mpsFileName = dataDir +
"mpsFiles" + dirsep +
"parinc.mps";
480 mps2osil =
new OSmps2OS( mpsFileName);
483 mps2osil->createOSObjects();
485 OSInstance *osinstance1 = mps2osil->osinstance;
486 std::string sOSiL = osilwriter->writeOSiL( osinstance1 );
488 cout << sOSiL << endl;
492 OSInstance *osinstance2 = osilreader->readOSiL( sOSiL);
495 double theDiff, theMax;
498 for(
int i = 0; i < nvals; i++){
499 theDiff = fabs(osinstance1->instanceData->linearConstraintCoefficients->value->el[ i] -
500 osinstance2->instanceData->linearConstraintCoefficients->value->el[ i])/ fabs(osinstance1->instanceData->linearConstraintCoefficients->value->el[ i]);
501 if(theDiff > theMax){
506 std::cout <<
"MAXIMUM DIFF = " << theMax << std::endl;
510 std::cout <<
"MAXIMUM DIFF INDEX = " << theIndex << std::endl;
511 unitTestResult <<
"WARNING: you do not have lossless IO" << std::endl;
512 temp <<
"Large discrepancy at position " << theIndex <<
": " << theMax << std::endl;
517 unitTestResult <<
"TEST " << nOfTest <<
": Passed lossless IO test" << std::endl;
518 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
529 unitTestResultFailure <<
"Unit Test Failed Lossless I/O test -- Test " << nOfTest <<
": " + eclass.errormsg<< endl;
530 if (mps2osil != NULL)
533 if (osilreader != NULL)
536 if (osilwriter != NULL)
543 cout << endl <<
"TEST " << ++nOfTest <<
": nonlinear operators" << endl << endl;
550 std::string operatorTest = dataDir +
"osilFiles" + dirsep +
"testOperators.osil";
551 osil = fileUtil->getFileAsString( operatorTest.c_str() );
552 cout <<
"Read testOperators.osil...";
553 osinstance = osilreader->readOSiL( osil);
554 cout <<
"Done" << endl;
556 std::string osil2 = osilwriter->writeOSiL( osinstance);
557 std::cout << osil2 << endl;
558 cout <<
"Read osil again...";
559 osilreader->readOSiL( osil2);
560 cout <<
"Done" << endl;
563 std::vector<ExprNode*> postfixVec;
565 int n = postfixVec.size();
566 nodeNames1 =
new std::string[ n];
567 for (
int i = 0 ; i < n; i++)
569 std::cout <<
"node " << i <<
"@" << postfixVec[i] <<
": " << postfixVec[i]->getTokenName();
570 std::cout <<
" scalar kids = " << postfixVec[i]->inumberOfChildren;
571 std::cout <<
" matrix kids = " << postfixVec[i]->inumberOfMatrixChildren << std::endl;
572 nodeNames1[i] = postfixVec[i]->getTokenName();
579 ok = ( fabs(check - expTree->m_treeRoot->calculateFunction( x))/(fabs( check) +
OS_NEAR_EQUAL) <=
OS_NEAR_EQUAL) ? true :
false;
591 if (ok ==
false)
throw ErrorClass(
" Problem evaluating expression tree");
592 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of nonlinear operators using file testOperators.osil" << std::endl;
593 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
597 unitTestResultFailure <<
"Sorry Unit Test Failed Test " << nOfTest <<
": nonlinear operators " + eclass.errormsg << endl;
598 cout << endl << endl << endl;
599 unitTestResultFailure << eclass.errormsg << endl;
603 if (nodeNames1 != NULL)
606 if (osilreader != NULL)
609 if (osilwriter != NULL)
612 if (fileUtil != NULL)
620 cout << endl <<
"TEST " << ++nOfTest <<
": Automatic differentiation" << endl << endl;
625 std::string expTreeTest = dataDir +
"osilFiles" + dirsep +
"CppADTestLag.osil";
634 osil = fileUtil->getFileAsString( expTreeTest.c_str() );
636 cout <<
"Read file" << endl;
637 osinstance = osilreader->readOSiL( osil);
646 cout <<
"Perform gradient computations" << endl;
651 double checkPartial2Con1 = 7.0 ;
653 if(ok ==
false)
throw ErrorClass(
" Fail testing gradient calculation");
654 double checkPartial0Con1 = (1./x[0]) ;
656 if(ok ==
false)
throw ErrorClass(
" Fail testing gradient calculation");
657 double checkPartial3Con1 = (1./x[3]) ;
659 if(ok ==
false)
throw ErrorClass(
" Fail testing gradient calculation");
664 cout <<
"Perform Hessian computations" << endl;
668 if(ok ==
false)
throw ErrorClass(
" Fail testing Hessian calculation");
670 if(ok ==
false)
throw ErrorClass(
" Fail testing Hessian calculation");
672 if(ok ==
false)
throw ErrorClass(
" Fail testing Hessian calculation");
679 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of AD gradient and Hessian calculations" << std::endl;
680 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
684 unitTestResultFailure <<
"Sorry Unit Test Failed Test " << nOfTest <<
": Automatic differentiation " + eclass.errormsg << endl;
685 cout << endl << endl << endl;
686 unitTestResultFailure <<
"Failed test " << nOfTest << endl << eclass.errormsg << endl;
690 if (osilreader != NULL)
693 if (fileUtil != NULL)
704 cout << endl <<
"TEST " << ++nOfTest <<
": Test parsing an OSiL file (parincLinear.osil)" << endl << endl;
710 clock_t start, finish;
712 cout <<
"Test parsing a model" << endl;
713 cout <<
"First read the file into a string" << endl;
715 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincLinear.osil";
716 osil = fileUtil->getFileAsString( osilFileName.c_str());
718 duration = (double) (finish - start) / CLOCKS_PER_SEC;
719 cout <<
"Reading the file into a string took (seconds): "<< duration << endl;
721 cout <<
"PARSE THE OSIL STRING INTO AN OSINSTANCE OBJECT" << endl;
722 osilreader->readOSiL( osil);
733 duration = (double) (finish - start) / CLOCKS_PER_SEC;
734 cout <<
"Parsing took (seconds): "<< duration << endl;
735 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSiL parser on problem parincLinear.osil" << std::endl;
736 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
740 unitTestResultFailure <<
"Sorry Unit Test Failed Test " << nOfTest <<
": OSiL parser " + eclass.errormsg << endl;
741 cout << endl << endl << endl;
742 cout << eclass.errormsg << endl;
743 unitTestResultFailure <<
"Sorry Unit Test Failed Testing An OSiL Parser (Test " << nOfTest <<
")" << endl;
745 if (osilreader != NULL)
748 if (osilwriter != NULL)
751 if (fileUtil != NULL)
762 cout << endl <<
"TEST " << ++nOfTest <<
": OSInstance get() and set() methods" << endl << endl;
767 cout <<
"Read file" << endl;
768 osilFileName = dataDir +
"osilFiles" + dirsep +
"rosenbrockmod.osil";
769 osil = fileUtil->getFileAsString( osilFileName.c_str() );
770 osinstance = osilreader->readOSiL( osil);
774 cout <<
"Copy header information" << endl;
775 std::string name, source, description, fileCreator, licence;
783 if (!osinstance2->setInstanceName(name))
throw ErrorClass(
"Error duplicating header information");
784 if (!osinstance2->setInstanceSource(source))
throw ErrorClass(
"Error duplicating header information");
785 if (!osinstance2->setInstanceDescription(description))
throw ErrorClass(
"Error duplicating header information");
786 if (!osinstance2->setInstanceCreator(fileCreator))
throw ErrorClass(
"Error duplicating header information");
787 if (!osinstance2->setInstanceLicence(licence))
throw ErrorClass(
"Error duplicating header information");
790 cout <<
"Copy variables" << endl;
800 osinstance2->instanceData->variables =
new Variables();
801 osinstance2->instanceData->variables->numberOfVariables = nvar;
802 osinstance2->instanceData->variables->var =
new Variable*[nvar];
804 if (!osinstance2->setVariables(nvar, varname, varlb, varub, vartype))
throw ErrorClass(
"Error duplicating variable information");
808 cout <<
"Copy objectives" << endl;
819 osinstance2->instanceData->objectives =
new Objectives();
820 osinstance2->instanceData->objectives->numberOfObjectives = nobj;
821 osinstance2->instanceData->objectives->obj =
new Objective*[nobj];
823 if (!osinstance2->setObjectives(nobj, objname, objdir, objconst, objweight, objcoeff))
throw ErrorClass(
"Error duplicating objective information");
827 cout <<
"Copy constraints" << endl;
837 osinstance2->instanceData->constraints =
new Constraints();
838 osinstance2->instanceData->constraints->numberOfConstraints = ncon;
839 osinstance2->instanceData->constraints->con =
new Constraint*[ncon];
841 if (!osinstance2->setConstraints(ncon, conname, conlb, conub, con_c))
throw ErrorClass(
"Error duplicating constraint information");
845 cout <<
"Copy linear constraint coefficient matrix" << endl;
866 if (!osinstance2->copyLinearConstraintCoefficients(ncoef, isColMajor,
867 coeff->values, 0, ncoef-1,
868 coeff->indexes, 0, ncoef-1,
869 coeff->starts, 0, nstart))
870 throw ErrorClass(
"Error duplicating linear constraint coefficients");
874 cout <<
"Copy quadratic terms" << endl;
880 if (!osinstance2->setQuadraticCoefficients(nquad,
881 qcoef->rowIndexes, qcoef->varOneIndexes,
882 qcoef->varTwoIndexes, qcoef->coefficients,
884 throw ErrorClass(
"Error duplicating quadratic coefficients");
888 cout <<
"Copy nonlinear expressions" << endl;
901 if (!osinstance2->setNonlinearExpressions(nexpr, root))
902 throw ErrorClass(
"Error duplicating nonlinear expressions");
906 cout <<
"Compare the two instances" << endl;
907 if (!osinstance2->IsEqual(osinstance))
throw ErrorClass(
"Loss of data during duplication");
912 unitTestResult <<
"TEST " << nOfTest <<
": Passed OSInstance get() and set() methods" << std::endl;
913 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
932 unitTestResultFailure <<
"Unit Test Failed OSInstance get() and set() methods (Test "
933 << nOfTest <<
"): " + eclass.errormsg<< endl;
934 if (osinstance2 != NULL)
937 if (osilreader != NULL)
940 if (osilwriter != NULL)
943 if (fileUtil != NULL)
949 if( THOROUGH ==
true)
952 cout << endl <<
"TEST " << ++nOfTest <<
": Test parsing another OSiL file (testMatricesAndCones.osil)" << endl << endl;
960 cout <<
"First read the file into a string" << endl;
961 osilFileName = dataDir +
"osilFiles" + dirsep +
"testMatricesAndCones.osil";
962 osil = fileUtil->getFileAsString( osilFileName.c_str());
963 cout <<
"PARSE THE OSIL STRING INTO AN OSINSTANCE OBJECT" << endl;
964 instance1 = osilreader->readOSiL( osil);
966 cout <<
"Write the OSInstance object to a temporary file (i.e., string)" << endl;
967 std::string temposil = osilwriter->writeOSiL(instance1);
968cout << temposil << endl;
969 cout <<
"Parse the temporary string again" << endl;
971 instance2 = osilreader2->
readOSiL( temposil);
973 cout <<
"compare the two objects" << endl;
974 if (!instance2->IsEqual(instance1))
975 throw ErrorClass(
"<matrices> and <cones> not processed correctly");
985 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSiL parser on problem testMatricesAndCones.osil" << std::endl;
986 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
990 cout << endl <<
"TEST " << ++nOfTest <<
": Test matrix manipulation routines (using testMatricesAndCones.osil)" << endl << endl;
1040 cout << endl <<
"Test matrix expansion in column major form" << endl;
1043 = instance1->instanceData->matrices->matrix[32]->getMatrixCoefficientsInColumnMajor();
1044 if (test1_a->valueSize != 17)
1045 throw ErrorClass(
"Failed column expansion of matrix 32 (by columns)");
1046 if (test1_a->isDiagonal())
1047 throw ErrorClass(
"Failed diagonality assessment of matrix 32");
1049 int rowPartition1[3];
1050 rowPartition1[0]= 0;
1051 rowPartition1[1]= 3;
1052 rowPartition1[2]= 7;
1054 int colPartition1[3];
1055 colPartition1[0]= 0;
1056 colPartition1[1]= 2;
1057 colPartition1[2]= 6;
1059 cout << endl <<
"Test matrix expansion in blocks form" << endl;
1061 = instance1->instanceData->matrices->matrix[32]
1062 ->getBlocks(rowPartition1,3,colPartition1,3,
false,
false);
1063 if (test1_b->blockNumber != 4)
1064 throw ErrorClass(
"Failed block expansion of matrix 32");
1065 if (test1_b->isBlockDiagonal())
1066 throw ErrorClass(
"Failed block expansion of matrix 32");
1067 if (test1_b->blocks[0]->valueSize != 3)
1068 throw ErrorClass(
"Failed block expansion of matrix 32");
1069 if (test1_b->blocks[0]->isDiagonal())
1070 throw ErrorClass(
"Failed block expansion of matrix 32");
1072 cout << endl <<
"Test matrix expansion in row major form" << endl;
1074 = instance1->instanceData->matrices->matrix[32]->getMatrixCoefficientsInRowMajor();
1075 if (test1_c->valueSize != 17)
1076 throw ErrorClass(
"Failed row expansion of matrix 32");
1077 if (test1_c->isDiagonal())
1078 throw ErrorClass(
"Failed diagonality assessment of matrix 32 (by rows)");
1081 cout << endl <<
"Another matrix expansion in column major form" << endl;
1084 instance1->instanceData->matrices->matrix[35]->getMatrixCoefficientsInColumnMajor();
1085 if (test2_a->valueSize != 68)
1086 throw ErrorClass(
"Failed column expansion of matrix 35 (by columns)");
1088 int rowPartition2[6];
1089 rowPartition2[0]= 0;
1090 rowPartition2[1]= 5;
1091 rowPartition2[2]= 10;
1092 rowPartition2[3]= 15;
1093 rowPartition2[4]= 20;
1094 rowPartition2[5]= 25;
1096 int colPartition2[5];
1097 colPartition2[0]= 0;
1098 colPartition2[1]= 6;
1099 colPartition2[2]= 12;
1100 colPartition2[3]= 18;
1101 colPartition2[4]= 24;
1103 cout << endl <<
"Another matrix expansion in blocks format" << endl;
1105 = instance1->instanceData->matrices->matrix[35]
1106 ->getBlocks(rowPartition2,6,colPartition2,5,
false,
false);
1107 if (test2_b->blockNumber != 20)
1108 throw ErrorClass(
"Failed block expansion of matrix 35");
1109 if (test2_b->isBlockDiagonal())
1110 throw ErrorClass(
"Failed block expansion of matrix 35");
1111 if (test2_b->blocks[0]->valueSize != 5)
1112 throw ErrorClass(
"Failed block expansion of matrix 35");
1113 if (test2_b->blocks[10]->valueSize != 4)
1114 throw ErrorClass(
"Failed block expansion of matrix 35");
1115 if (test2_b->blocks[15]->valueSize != 1)
1116 throw ErrorClass(
"Failed block expansion of matrix 35");
1117 if (test2_b->blocks[16]->valueSize != 2)
1118 throw ErrorClass(
"Failed block expansion of matrix 35");
1121 cout << endl <<
"Another matrix expansion in row major form" << endl;
1123 instance1->instanceData->matrices->matrix[35]->getMatrixCoefficientsInRowMajor();
1124 if (test2_c->valueSize != 68)
1125 throw ErrorClass(
"Failed column expansion of matrix 35 (by rows)");
1135 cout << endl <<
"Test matrix expansion 3_a" << endl;
1138 = instance1->instanceData->matrices->matrix[36]
1139 ->getBlocks(partition3,4,partition3,4,
false,
true);
1141 if (test3_a == NULL)
1142 throw ErrorClass(
"Failed block expansion of matrix 36");
1143 if (test3_a->blockNumber != 2)
1144 throw ErrorClass(
"Failed block expansion of matrix 36");
1145 if (!test3_a->isBlockDiagonal())
1146 throw ErrorClass(
"Failed block expansion of matrix 36");
1148 cout << endl <<
"Test matrix expansion 3_b" << endl;
1150 if (test3_b->valueSize != 3)
1151 throw ErrorClass(
"Failed block expansion of matrix 36");
1152 if (test3_b->isDiagonal())
1153 throw ErrorClass(
"Failed block expansion of matrix 36");
1155 cout << endl <<
"Test matrix expansion 3_c" << endl;
1157 if (test3_c->valueSize != 3)
1158 throw ErrorClass(
"Failed block expansion of matrix 36");
1159 if (!test3_c->isDiagonal())
1160 throw ErrorClass(
"Failed block expansion of matrix 36");
1162 cout << endl <<
"Test matrix expansion 3_d" << endl;
1164 if (test3_d != NULL)
1165 throw ErrorClass(
"Failed block expansion of matrix 36");
1168 cout << endl <<
"Test matrix expansion 6_a" << endl;
1170 instance1->instanceData->matrices->matrix[11]->getMatrixCoefficientsInColumnMajor();
1171 if (!test6_a->isDiagonal())
1172 throw ErrorClass(
"Failed diagonality assessment of matrix 11 (by columns)");
1174 cout << endl <<
"Test matrix expansion 6_b" << endl;
1176 instance1->instanceData->matrices->matrix[11]->getMatrixCoefficientsInRowMajor();
1177 if (!test6_b->isDiagonal())
1178 throw ErrorClass(
"Failed diagonality assessment of matrix 11 (by rows)");
1189 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of matrix manipulation routines" << std::endl;
1190 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
1194 cout << endl << endl << endl;
1195 cout << eclass.errormsg << endl;
1196 unitTestResultFailure <<
"Sorry Unit Test Failed Testing OSiL <matrix> Parser (Test "
1197 << nOfTest <<
")" << endl;
1199 if (osilreader != NULL)
1202 if (osilreader2 != NULL)
1205 if (osilwriter != NULL)
1208 if (fileUtil != NULL)
1218 std::string *sncheck =
new std::string[6];
1219 int *nvcheck =
new int[6];
1220 int *nccheck =
new int[6];
1221 int *nocheck =
new int[6];
1222 int **lvcheck =
new int*[6];
1223 int **lccheck =
new int*[6];
1224 int **locheck =
new int*[6];
1225 std::string *sn1 =
new std::string[6];
1226 int *nv1=
new int[6];
1227 int *nc1 =
new int[6];
1228 int *no1 =
new int[6];
1229 int **lv1 =
new int*[6];
1230 int **lc1 =
new int*[6];
1231 int **lo1 =
new int*[6];
1232 int *nelem =
new int[4];
1233 int *startIdx =
new int[4];
1234 int **VI =
new int*[4];
1237 cout << endl <<
"TEST " << ++nOfTest <<
": Stochastic extensions to OSiL" << endl << endl;
1242 clock_t start, finish;
1244 cout <<
"\nTest parsing a stochastic model" << endl;
1245 cout <<
"First read the file into a string" << endl;
1247 osilFileName = dataDir +
"osilFiles" + dirsep +
"finplan1.osil";
1248 osil = fileUtil->getFileAsString( &osilFileName[0]);
1250 duration = (double) (finish - start) / CLOCKS_PER_SEC;
1251 cout <<
"Reading the file into a string took (seconds): "<< duration << endl;
1253 cout <<
"PARSE THE OSIL STRING INTO AN OSINSTANCE OBJECT" << endl;
1254 osilreader->readOSiL( osil);
1256 duration = (double) (finish - start) / CLOCKS_PER_SEC;
1257 cout <<
"Parsing took (seconds): "<< duration << endl;
1258 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSiL parser on problem finplan1.osil" << std::endl;
1259 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
1266 cout << endl << endl << endl;
1267 cout << eclass.errormsg << endl;
1268 unitTestResultFailure <<
"Error parsing an osil file with time domain information (Test " << nOfTest <<
")" << endl;
1270 if (osilreader != NULL)
1273 if (fileUtil != NULL)
1281 cout << endl <<
"TEST " << ++nOfTest <<
": GET() AND SET() METHODS FOR TimeDomain OBJECT" << endl << endl;
1286 osinstance = osilreader->readOSiL( osil);
1288 ok = (f ==
"stages");
1295 sncheck[3] =
"test";
1296 sncheck[4] =
"Wha'zzup?";
1301 for (
int i = 0; i < 6; i++)
1302 ok &= (sn[i] == sncheck[i]);
1313 for (
int i = 0; i < 6; i++)
1314 ok &= (nv[i] == nvcheck[i]);
1325 for (
int i = 0; i < 6; i++)
1326 ok &= (nc[i] == nccheck[i]);
1337 for (
int i = 0; i < 6; i++)
1338 ok &= (no[i] == nocheck[i]);
1344 for (
int i = 0; i < 6; i++)
1346 lvcheck[i] =
new int[2];
1347 lccheck[i] =
new int[2];
1348 locheck[i] =
new int[2];
1368 for (
int i = 0; i < 6; i++) {
1369 for (
int j = 0; j < nv[i]; j++)
1370 ok &= (lvcheck[i][j] == lv[i][j]);
1371 for (
int j = 0; j < nc[i]; j++)
1372 ok &= (lccheck[i][j] == lc[i][j]);
1373 for (
int j = 0; j < no[i]; j++)
1374 ok &= (locheck[i][j] == lo[i][j]);
1378 for (
int i = 0; i < 6; i++) {
1383 lv1[i] =
new int[2];
1384 lc1[i] =
new int[2];
1385 lo1[i] =
new int[2];
1386 for (
int j = 0; j < nv[i]; j++) {
1387 lv1[i][j] = lv[i][j];
1389 for (
int j = 0; j < nc[i]; j++) {
1390 lc1[i][j] = lc[i][j];
1392 for (
int j = 0; j < no[i]; j++) {
1393 lo1[i][j] = lo[i][j];
1405 for (
int i = 0; i < 4; i++)
1414 for (
int i = 0; i < 4; i++)
1420 for (
int i = 0; i < 4; i++)
1432 ok &= (lower == 0.0);
1434 ok &= (upper == 1.0);
1451 for (
int i = 0; i < n2; i++)
1452 { ok &= (sn2[i] == sncheck[i]);
1453 ok &= (nv2[i] == nvcheck[i]);
1454 ok &= (nc2[i] == nccheck[i]);
1455 ok &= (no2[i] == nocheck[i]);
1456 for (
int j = 0; j < nv2[i]; j++)
1457 ok &= (lv2[i][j] == lvcheck[i][j]);
1458 for (
int j = 0; j < nc2[i]; j++)
1459 ok &= (lc2[i][j] == lccheck[i][j]);
1460 for (
int j = 0; j < no2[i]; j++)
1461 ok &= (lo2[i][j] == locheck[i][j]);
1464 if (sncheck != NULL)
1467 if (nvcheck != NULL)
1470 if (nccheck != NULL)
1473 if (nocheck != NULL)
1477 for (
int i = 0; i < 6; i++) {
1478 if (lvcheck[i] != NULL)
1479 delete [] lvcheck[i];
1480 if (lccheck[i] != NULL)
1481 delete [] lccheck[i];
1482 if (locheck[i] != NULL)
1483 delete [] locheck[i];
1491 if (lvcheck != NULL)
1494 if (lccheck != NULL)
1497 if (locheck != NULL)
1524 if (startIdx != NULL)
1529 for (
int i = 0; i < 4; i++) {
1537 if (osilreader != NULL)
1540 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of osinstance get() and set() methods" << std::endl;
1541 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
1545 cout << endl << endl << endl;
1546 cout << eclass.errormsg << endl;
1547 unitTestResultFailure <<
"Sorry Unit Test Failed osinstance get() and set() Methods (Test "<< nOfTest <<
")" << endl;
1549 if (sncheck != NULL)
1552 if (nvcheck != NULL)
1555 if (nccheck != NULL)
1558 if (nocheck != NULL)
1562 for (
int i = 0; i < 6; i++) {
1563 if (lvcheck[i] != NULL)
1564 delete [] lvcheck[i];
1565 if (lccheck[i] != NULL)
1566 delete [] lccheck[i];
1567 if (locheck[i] != NULL)
1568 delete [] locheck[i];
1576 if (lvcheck != NULL)
1579 if (lccheck != NULL)
1582 if (locheck != NULL)
1609 if (startIdx != NULL)
1614 for (
int i = 0; i < 4; i++) {
1622 if (osilreader != NULL)
1646 cout << endl <<
"TEST " << ++nOfTest <<
": OSoL parser" << endl << endl;
1652 std::string tmpOSoL;
1653 clock_t start, finish;
1655 cout <<
"Test parsing an OSoL file" << endl;
1656 cout <<
"First read the OSoL file into a string" << endl;
1657 osolFileName = dataDir +
"osolFiles" + dirsep +
"parsertest.osol";
1658 cout << osolFileName << endl;
1660 std::string osol = fileUtil->getFileAsString( osolFileName.c_str() );
1662 duration = (double) (finish - start) / CLOCKS_PER_SEC;
1663 cout <<
"Reading the file into a string took (seconds): "<< duration << endl;
1665 cout <<
"PARSE THE OSOL STRING INTO AN OSOPTION OBJECT" << endl;
1669 cout << endl <<
"Test the add() methods" << endl;
1697 std::string SOS3nam[2];
1702 SOS3nam[0] =
"a name";
1703 SOS3nam[1] =
"another";
1715 cout << endl <<
"another SOS has been added" << endl << endl;
1720 varopt->name =
"testVarOpt";
1721 varopt->numberOfVar = 2;
1722 varopt->numberOfEnumerations = 0;
1725 varopt->var[0]->idx = 0;
1726 varopt->var[0]->value =
"3.0";
1728 varopt->var[1]->idx = 1;
1729 varopt->var[1]->lbValue =
"0.0";
1730 varopt->var[1]->ubValue =
"10.0";
1735 cout << endl <<
"another variable option has been added" << endl << endl;
1740 objopt->name =
"testObjOpt";
1741 objopt->numberOfObj = 0;
1742 objopt->numberOfEnumerations = 0;
1747 cout << endl <<
"another objective option has been added" << endl << endl;
1755 conopt->name =
"testConOpt";
1757 conopt->numberOfCon = 0;
1758 conopt->numberOfEnumerations = 1;
1762 conopt->enumeration[0]->numberOfEl = 3;
1763 conopt->enumeration[0]->value =
"test";
1764 conopt->enumeration[0]->description =
"this is not a test";
1765 conopt->enumeration[0]->numberOfEl = 3;
1766 conopt->enumeration[0]->el =
new int[3];
1767 conopt->enumeration[0]->el[0] = 1;
1768 conopt->enumeration[0]->el[1] = 3;
1769 conopt->enumeration[0]->el[2] = 5;
1775 cout << endl <<
"another constraint option has been added" << endl << endl;
1781 throw ErrorClass(
" Could not add to osoption data structure");
1784 std::string optionstring, fileName, fileSource, fileDescription, fileCreator, fileLicence;
1790 cout << endl <<
"transfer osoption to another OSOption object" << endl;
1797 ok = osoption2->setHeader(fileName, fileSource, fileDescription, fileCreator, fileLicence);
1800 throw ErrorClass(
" error in get/set option header");
1805 ok = osoption2->setServiceURI(optionstring);
1808 throw ErrorClass(
" error in get/set ServiceURI");
1812 ok = osoption2->setServiceName(optionstring) && ok;
1815 throw ErrorClass(
" error in get/set ServiceName");
1819 ok = osoption2->setInstanceName(optionstring) && ok;
1822 throw ErrorClass(
" error in get/set InstanceName");
1826 ok = osoption2->setInstanceLocation(optionstring) && ok;
1829 throw ErrorClass(
" error in get/set InstanceLocation");
1833 ok = osoption2->setInstanceLocationType(optionstring) && ok;
1836 throw ErrorClass(
" error in get/set InstanceLocationtype");
1840 ok = osoption2->setJobID(optionstring) && ok;
1847 ok = osoption2->setSolverToInvoke(optionstring) && ok;
1850 throw ErrorClass(
" error in get/set SolverToInvoke");
1854 ok = osoption2->setInstanceLocationType(optionstring) && ok;
1857 throw ErrorClass(
" error in get/set InstanceLocationType");
1861 ok = osoption2->setUserName(optionstring) && ok;
1864 throw ErrorClass(
" error in get/set UserName");
1870 throw ErrorClass(
" error in get/set Password");
1872 ok = osoption2->setPassword(optionstring) && ok;
1875 ok = osoption2->setContact(optionstring) && ok;
1878 throw ErrorClass(
" error in get/set Contact");
1882 ok = osoption2->setContactTransportType(optionstring) && ok;
1885 throw ErrorClass(
" error in get/set TransportType");
1892 ok = osoption2->setOtherGeneralOptions(nopt, otherOpt) && ok;
1895 throw ErrorClass(
" error in get/set OtherGeneralOption");
1898 std::string tempDescription;
1903 ok = osoption2->setMinDiskSpace(optionstring,tempDescription,option_d) && ok;
1906 throw ErrorClass(
" error in get/set MinDiskSpace");
1912 ok = osoption2->setMinMemorySize(optionstring,tempDescription,option_d) && ok;
1915 throw ErrorClass(
" error in get/set MinMemorySize");
1921 ok = osoption2->setMinCPUSpeed(optionstring,tempDescription,option_d) && ok;
1924 throw ErrorClass(
" error in get/set MinCPUSpeed");
1929 ok = osoption2->setMinCPUNumber(option_i, optionstring) && ok;
1932 throw ErrorClass(
" error in get/set MinCPUNumber");
1938 ok = osoption2->setOtherSystemOptions(nopt, otherOpt2) && ok;
1941 throw ErrorClass(
" error in get/set OtherSystemOptions");
1946 ok = osoption2->setServiceType(optionstring) && ok;
1949 throw ErrorClass(
" error in get/set ServiceType");
1955 ok = osoption2->setOtherServiceOptions(nopt, otherOpt3) && ok;
1958 throw ErrorClass(
" error in get/set OtherServiceOptions");
1963 ok = osoption2->setMaxTime(option_d) && ok;
1966 throw ErrorClass(
" error in get/set MaxTime");
1970 ok = osoption2->setMaxTimeUnit(optionstring) && ok;
1973 throw ErrorClass(
" error in get/set MaxTimeUnit");
1977 ok = osoption2->setRequestedStartTime(optionstring) && ok;
1980 throw ErrorClass(
" error in get/set RequestedStartTime");
1985 ok = osoption2->setJobDependencies(nopt, tJobID) && ok;
1988 throw ErrorClass(
" error in get/set JobDependencies");
1993 ok = osoption2->setRequiredDirectories(nopt, reqDir) && ok;
1996 throw ErrorClass(
" error in get/set RequiredDirectories");
2001 ok = osoption2->setRequiredFiles(nopt, reqFil) && ok;
2004 throw ErrorClass(
" error in get/set RequiredFiles");
2009 ok = osoption2->setDirectoriesToMake(nopt, mkDir) && ok;
2012 throw ErrorClass(
" error in get/set DirectoriesToMake");
2017 ok = osoption2->setFilesToMake(nopt, mkFil) && ok;
2020 throw ErrorClass(
" error in get/set FilesToMake");
2025 ok = osoption2->setInputDirectoriesToMove(nopt, inDMv) && ok;
2028 throw ErrorClass(
" error in get/set InputDirectoriesToMove");
2033 ok = osoption2->setInputFilesToMove(nopt, inFMv) && ok;
2036 throw ErrorClass(
" error in get/set InputFilesToMove");
2041 ok = osoption2->setOutputFilesToMove(nopt, outFMv) && ok;
2044 throw ErrorClass(
" error in get/set OutputFilesToMove");
2049 ok = osoption2->setOutputDirectoriesToMove(nopt, outDMv) && ok;
2052 throw ErrorClass(
" error in get/set OutputDirectoriesToMove");
2057 ok = osoption2->setFilesToDelete(nopt, rmFil) && ok;
2060 throw ErrorClass(
" error in get/set FilesToDelete");
2065 ok = osoption2->setDirectoriesToDelete(nopt, rmDir) && ok;
2068 throw ErrorClass(
" error in get/set DirectoriesToDelete");
2073 ok = osoption2->setProcessesToKill(nopt, rmProc) && ok;
2076 throw ErrorClass(
" error in get/set ProcessesToKill");
2082 ok = osoption2->setOtherJobOptions(nopt, otherOpt4) && ok;
2085 throw ErrorClass(
" error in get/set OtherJobOptions");
2088 int nvar, nobj, ncon;
2090 ok = osoption2->setNumberOfVariables(nvar) && ok;
2092 ok = osoption2->setNumberOfObjectives(nobj) && ok;
2094 ok = osoption2->setNumberOfConstraints(ncon) && ok;
2101 throw ErrorClass(
" error in get/set problem dimensions");
2108 ok = osoption2->setInitVarValuesSparse(nopt, IVV) && ok;
2111 throw ErrorClass(
" error in get/set InitVarValues");
2118 ok = osoption2->setInitVarValuesStringSparse(nopt, IVV2) && ok;
2121 throw ErrorClass(
" error in get/set InitVarValuesString");
2129 IBS =
new int[nvar];
2135 throw ErrorClass(
" error in get/set InitBasisStatus");
2142 IBS =
new int[nvar];
2149 throw ErrorClass(
" error in get/set InitBasisStatus");
2156 IBS =
new int[nvar];
2162 throw ErrorClass(
" error in get/set InitBasisStatus");
2169 IBS =
new int[nvar];
2175 throw ErrorClass(
" error in get/set InitBasisStatus");
2182 IBS =
new int[nvar];
2188 throw ErrorClass(
" error in get/set InitBasisStatus");
2195 IBS =
new int[nvar];
2201 throw ErrorClass(
" error in get/set InitBasisStatus");
2208 IBS =
new int[nvar];
2214 throw ErrorClass(
" error in get/set InitBasisStatus");
2222 ok = osoption2->setIntegerVariableBranchingWeightsSparse(nopt, BW) && ok;
2225 throw ErrorClass(
" error in get/set IntegerVariableBranchingWeights");
2231 ok = osoption2->setSOSVariableBranchingWeights(nopt, sos) && ok;
2234 throw ErrorClass(
" error in get/set SOSVariableBranchingWeights");
2240 ok = osoption2->setOtherVariableOptions(nopt, otherV) && ok;
2243 throw ErrorClass(
" error in get/set OtherVariableOptions");
2249 for (
int lmn=0; lmn < nobj; lmn++)
2251 ok = osoption2->setInitObjValuesSparse(nopt, IOV) && ok;
2254 throw ErrorClass(
" error in get/set InitObjValues");
2260 ok = osoption2->setInitObjBoundsSparse(nopt, IOB) && ok;
2263 throw ErrorClass(
" error in get/set InitObjBounds");
2269 IBS =
new int[nvar];
2275 throw ErrorClass(
" error in get/set InitBasisStatus");
2282 IBS =
new int[nvar];
2288 throw ErrorClass(
" error in get/set InitBasisStatus");
2295 IBS =
new int[nvar];
2301 throw ErrorClass(
" error in get/set InitBasisStatus");
2308 IBS =
new int[nvar];
2314 throw ErrorClass(
" error in get/set InitBasisStatus");
2321 IBS =
new int[nvar];
2327 throw ErrorClass(
" error in get/set InitBasisStatus");
2334 IBS =
new int[nvar];
2340 throw ErrorClass(
" error in get/set InitBasisStatus");
2347 IBS =
new int[nvar];
2353 throw ErrorClass(
" error in get/set InitBasisStatus");
2360 ok = osoption2->setOtherObjectiveOptions(nopt, otherO) && ok;
2363 throw ErrorClass(
" error in get/set OtherObjectiveOptions");
2370 ok = osoption2->setInitConValuesSparse(nopt, ICV) && ok;
2373 throw ErrorClass(
" error in get/set InitConValues");
2379 ok = osoption2->setInitDualVarValuesSparse(nopt, IDV) && ok;
2382 throw ErrorClass(
" error in get/set InitDualVarValues");
2388 IBS =
new int[nvar];
2394 throw ErrorClass(
" error in get/set InitBasisStatus");
2401 IBS =
new int[nvar];
2407 throw ErrorClass(
" error in get/set InitBasisStatus");
2414 IBS =
new int[nvar];
2420 throw ErrorClass(
" error in get/set InitBasisStatus");
2427 IBS =
new int[nvar];
2433 throw ErrorClass(
" error in get/set InitBasisStatus");
2440 IBS =
new int[nvar];
2446 throw ErrorClass(
" error in get/set InitBasisStatus");
2453 IBS =
new int[nvar];
2459 throw ErrorClass(
" error in get/set InitBasisStatus");
2466 IBS =
new int[nvar];
2472 throw ErrorClass(
" error in get/set InitBasisStatus");
2479 ok = osoption2->setOtherConstraintOptions(nopt, otherC) && ok;
2482 throw ErrorClass(
" error in get/set OtherConstraintOptions");
2489 ok = osoption2->setSolverOptions(nopt, SO) && ok;
2494 throw ErrorClass(
" error in get/set SolverOptions");
2499 cout <<
"get/set methods successfully duplicate OSOption object" << std::endl << std::endl;
2501 throw ErrorClass(
"OSOption get() and set() methods do not work correctly");
2503 cout <<
"Write the content to a new file" << endl;
2504 tmpOSoL = osolwriter->writeOSoL(
osoption);
2505 cout << endl <<
"Here is tmpOSoL:" <<endl;
2506 cout << endl << endl << tmpOSoL << endl;
2507 cout <<
"-----------------------------------------" << endl << endl;
2511 cout <<
"Read the string back" << endl;
2513 osoption3 = osolreader2->readOSoL( tmpOSoL);
2515 cout <<
"Compare the two OSOption objects" << endl;
2522 throw ErrorClass(
" Loss of information in OSoL write/read");
2536 "TEST " << nOfTest <<
": Successful test of OSoL set() and get() methods"
2538 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
2542 cout << endl << endl << endl;
2543 cout << eclass.errormsg << endl;
2544 unitTestResultFailure <<
"Sorry Unit Test Failed OSoL set() and get() methods (Test " << nOfTest <<
")" << endl;
2546 if (osoption2 != NULL)
2550 if (osolreader2 != NULL)
2554 if (osolwriter != NULL)
2558 if (osolreader != NULL)
2562 if (fileUtil != NULL)
2569 cout << endl <<
"TEST " << ++nOfTest <<
": Parse another .osol file" << endl << endl;
2575 std::string tmpOSoL;
2576 clock_t start, finish;
2581 cout <<
"First read the OSoL file into a string" << endl;
2582 osolFileName = dataDir +
"osolFiles" + dirsep +
"parsertest2.osol";
2583 osol = fileUtil->getFileAsString( osolFileName.c_str() );
2585 duration = (double) (finish - start) / CLOCKS_PER_SEC;
2586 cout <<
"Reading the file into a string took (seconds): "<< duration << endl;
2587 cout << endl << osol << endl;
2588 cout <<
"Parse the OSoL string into an OSOption object" << endl;
2591 std::cout <<
"string read; now write again" << std::endl;
2592 tmpOSoL = osolwriter->writeOSoL(
osoption) ;
2594 std::cout <<
"object written; delete osolreader" << std::endl;
2608 cout <<
"Test parsing another OSoL file" << endl;
2614 cout <<
"First read the OSoL file into a string" << endl;
2615 osolFileName = dataDir +
"osolFiles" + dirsep +
"parsertest3.osol";
2616 osol = fileUtil->getFileAsString( osolFileName.c_str() );
2618 duration = (double) (finish - start) / CLOCKS_PER_SEC;
2619 cout <<
"Reading the file into a string took (seconds): "<< duration << endl;
2620 cout <<
"Parse the OSoL string into an OSOption object" << endl;
2622 tmpOSoL = osolwriter->writeOSoL(
osoption) ;
2636 cout <<
"Test parsing a trivial string" << endl;
2640 osol =
"<osol></osol>";
2641 cout <<
"Parse the OSoL string into an OSOption object" << endl;
2646 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSoL parser" << std::endl;
2647 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
2652 std::cout <<
"Content of error msg:" << std::endl <<
"-------------------------------" << std::endl;
2653 std::cout << eclass.errormsg << endl;
2654 std::cout <<
"-------------------------------" << std::endl;
2656 unitTestResultFailure << eclass.errormsg << endl;
2657 unitTestResultFailure <<
"There was a failure in the test for reading OSoL (Test " << nOfTest <<
")" << endl;
2659 if(osolwriter != NULL)
2662 if(osolreader != NULL)
2665 if (fileUtil != NULL)
2673 cout << endl <<
"TEST " << ++nOfTest <<
": Parse faulty .osol file" << endl << endl;
2679 std::string tmpOSoL;
2681 cout <<
"First read the OSoL file into a string" << endl;
2682 osolFileName = dataDir +
"osolFiles" + dirsep +
"parsertestWithErrors.osol";
2683 osol = fileUtil->getFileAsString( osolFileName.c_str() );
2685 cout <<
"Parse the OSoL string into an OSOption object" << endl;
2700 unitTestResultFailure <<
"OSoL parser: error detection failed in faulty OSoL file (Test " << nOfTest <<
")" << endl;
2705 std::string resultFileName, resultFileContent;
2706 resultFileName = dataDir +
"osolFiles" + dirsep +
"parsertestWithErrors.result";
2707 resultFileContent = fileUtil->getFileAsString( resultFileName.c_str() );
2709 std::cout << std::endl << std::endl <<
"error message should be:" << resultFileContent << std::endl;
2710 std::cout << std::endl << std::endl <<
"error message now reads:" << eclass.errormsg << std::endl;
2712 if (resultFileContent == eclass.errormsg)
2714 unitTestResult <<
"TEST " << nOfTest <<
": Successful error handling of faulty OSoL input" << std::endl;
2715 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
2722 ni = resultFileContent.size() - 1;
2723 nj = eclass.errormsg.size() - 1;
2727 if (i >= ni || j >= nj)
break;
2730 if (resultFileContent[i] !=
'\n' && resultFileContent[i] !=
'\r' &&
2731 resultFileContent[i] !=
'\t' && resultFileContent[i] !=
' ' )
break;
2737 if (eclass.errormsg[j] !=
'\n' && eclass.errormsg[j] !=
'\r' &&
2738 eclass.errormsg[j] !=
'\t' && eclass.errormsg[j] !=
' ' )
break;
2743 ok &= (resultFileContent[i] == eclass.errormsg[j]);
2751 unitTestResult <<
"TEST " << nOfTest <<
": Successful error handling of faulty OSoL input" << std::endl;
2752 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
2755 unitTestResultFailure <<
"Test " << nOfTest <<
": There was a failure in the error handling of the OSoL parser" << endl;
2758 if(osolwriter != NULL)
2761 if(osolreader != NULL)
2764 if (fileUtil != NULL)
2774 cout << endl <<
"TEST " << ++nOfTest <<
": Test deep copy of OSOption object" << endl << endl;
2779 osolFileName = dataDir +
"osolFiles" + dirsep +
"parsertest.osol";
2780 std::string osol = fileUtil->getFileAsString( osolFileName.c_str() );
2781 cout <<
"Read osol file" << endl;
2784 cout <<
"Duplicate OSOption object" << endl;
2786 cout <<
"Compare the two objects" << endl;
2798 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSOption deep copy methods" << std::endl;
2799 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
2802 unitTestResultFailure <<
"Test " << nOfTest <<
": OSOption deep copy method is not working" << endl;
2807 unitTestResultFailure <<
"Sorry Unit Test Failed Test " << nOfTest <<
": Deep copy of OSOoption object " + eclass.errormsg << endl;
2808 if(osolreader != NULL)
2811 if (fileUtil != NULL)
2814 if(osoption2 != NULL)
2833 intArray =
new int[3];
2834 int* tempArray =
new int[3];
2837 cout << endl <<
"TEST " << ++nOfTest <<
": OSrL set() tools" << endl << endl;
2843 ok &= (osresult1->IsEqual(osresult2));
2845 throw ErrorClass(
"Empty osresult objects do not compare equal!");
2848 cout <<
"Set <general> element" << endl;
2849 ok &= osresult1->setGeneralStatusType(
"warning");
2851 throw ErrorClass(
"Error during setGeneralStatusType!");
2852 ok &= (!osresult1->IsEqual(osresult2));
2854 throw ErrorClass(
"setGeneralStatusType: osresult objects falsely compare equal!");
2855 ok &= osresult2->setGeneralStatusType(
"warning");
2857 throw ErrorClass(
"Error during setGeneralStatusType!");
2858 ok &= (osresult1->IsEqual(osresult2));
2860 throw ErrorClass(
"setGeneralStatusType: osresult objects falsely compare unequal!");
2862 ok &= osresult1->setGeneralStatusDescription(
"some nonempty string");
2864 throw ErrorClass(
"Error during setGeneralStatusDescription!");
2865 ok &= (!osresult1->IsEqual(osresult2));
2867 throw ErrorClass(
"setGeneralStatusDescription: osresult objects falsely compare equal!");
2868 ok &= osresult2->setGeneralStatusDescription(
"some nonempty string");
2870 throw ErrorClass(
"Error during setGeneralStatusDescription!");
2871 ok &= (osresult1->IsEqual(osresult2));
2873 throw ErrorClass(
"setGeneralStatusDescription: osresult objects falsely compare unequal!");
2875 ok &= osresult1->setNumberOfGeneralSubstatuses(3);
2877 throw ErrorClass(
"Error during setNumberOfGeneralSubstatuses!");
2878 ok &= (!osresult1->IsEqual(osresult2));
2880 throw ErrorClass(
"setNumberOfGeneralSubstatuses: osresult objects falsely compare equal!");
2881 ok &= osresult2->setNumberOfGeneralSubstatuses(3);
2883 throw ErrorClass(
"Error during setNumberOfGeneralSubstatuses!");
2884 ok &= (osresult1->IsEqual(osresult2));
2886 throw ErrorClass(
"setNumberOfGeneralSubstatuses: osresult objects falsely compare unequal!");
2888 for (
int i=0; i < 3; ++i)
2890 ok &= osresult1->setGeneralSubstatusName(i,
"some name");
2892 throw ErrorClass(
"Error during setGeneralSubstatusName!");
2893 ok &= (!osresult1->IsEqual(osresult2));
2895 throw ErrorClass(
"setGeneralSubstatusName: osresult objects falsely compare equal!");
2896 ok &= osresult2->setGeneralSubstatusName(i,
"some name");
2898 throw ErrorClass(
"Error during setGeneralSubstatusName!");
2899 ok &= (osresult1->IsEqual(osresult2));
2901 throw ErrorClass(
"setGeneralSubstatusName: osresult objects falsely compare unequal!");
2903 ok &= osresult1->setGeneralSubstatusDescription(i,
"ABC 123");
2905 throw ErrorClass(
"Error during setGeneralSubstatusDescription!");
2906 ok &= (!osresult1->IsEqual(osresult2));
2908 throw ErrorClass(
"setGeneralSubstatusDescription: osresult objects falsely compare equal!");
2909 ok &= osresult2->setGeneralSubstatusDescription(i,
"ABC 123");
2911 throw ErrorClass(
"Error during setGeneralSubstatusDescription!");
2912 ok &= (osresult1->IsEqual(osresult2));
2914 throw ErrorClass(
"setGeneralSubstatusDescription: osresult objects falsely compare unequal!");
2917 ok &= osresult1->setGeneralMessage(
"testing 123");
2919 throw ErrorClass(
"Error during setGeneralMessage!");
2920 ok &= (!osresult1->IsEqual(osresult2));
2922 throw ErrorClass(
"setGeneralMessage: osresult objects falsely compare equal!");
2923 ok &= osresult2->setGeneralMessage(
"testing 123");
2925 throw ErrorClass(
"Error during setGeneralMessage!");
2926 ok &= (osresult1->IsEqual(osresult2));
2928 throw ErrorClass(
"setGeneralMessage: osresult objects falsely compare unequal!");
2930 ok &= osresult1->setServiceName(
"testing 123");
2932 throw ErrorClass(
"Error during setServiceName!");
2933 ok &= (!osresult1->IsEqual(osresult2));
2935 throw ErrorClass(
"setServiceName: osresult objects falsely compare equal!");
2936 ok &= osresult2->setServiceName(
"testing 123");
2938 throw ErrorClass(
"Error during setServiceName!");
2939 ok &= (osresult1->IsEqual(osresult2));
2941 throw ErrorClass(
"setServiceName: osresult objects falsely compare unequal!");
2943 ok &= osresult1->setServiceURI(
"testing 123");
2945 throw ErrorClass(
"Error during setServiceURI!");
2946 ok &= (!osresult1->IsEqual(osresult2));
2948 throw ErrorClass(
"setServiceURI: osresult objects falsely compare equal!");
2949 ok &= osresult2->setServiceURI(
"testing 123");
2951 throw ErrorClass(
"Error during setServiceURI!");
2952 ok &= (osresult1->IsEqual(osresult2));
2954 throw ErrorClass(
"setServiceURI: osresult objects falsely compare unequal!");
2956 ok &= osresult1->setInstanceName(
"testing 123");
2958 throw ErrorClass(
"Error during setInstanceName!");
2959 ok &= (!osresult1->IsEqual(osresult2));
2961 throw ErrorClass(
"setInstanceName: osresult objects falsely compare equal!");
2962 ok &= osresult2->setInstanceName(
"testing 123");
2964 throw ErrorClass(
"Error during setInstanceName!");
2965 ok &= (osresult1->IsEqual(osresult2));
2967 throw ErrorClass(
"setInstanceName: osresult objects falsely compare unequal!");
2969 ok &= osresult1->setJobID(
"testing 123");
2972 ok &= (!osresult1->IsEqual(osresult2));
2974 throw ErrorClass(
"setJobID: osresult objects falsely compare equal!");
2975 ok &= osresult2->setJobID(
"testing 123");
2978 ok &= (osresult1->IsEqual(osresult2));
2980 throw ErrorClass(
"setJobID: osresult objects falsely compare unequal!");
2982 ok &= osresult1->setSolverInvoked(
"testing 123");
2984 throw ErrorClass(
"Error during setSolverInvoked!");
2985 ok &= (!osresult1->IsEqual(osresult2));
2987 throw ErrorClass(
"setSolverInvoked: osresult objects falsely compare equal!");
2988 ok &= osresult2->setSolverInvoked(
"testing 123");
2990 throw ErrorClass(
"Error during setSolverInvoked!");
2991 ok &= (osresult1->IsEqual(osresult2));
2993 throw ErrorClass(
"setSolverInvoked: osresult objects falsely compare unequal!");
2995 ok &= osresult1->setTimeStamp(
"2001-12-17T09:30:47.0Z");
2997 throw ErrorClass(
"Error during setTimeStamp!");
2998 ok &= (!osresult1->IsEqual(osresult2));
3000 throw ErrorClass(
"setTimeStamp: osresult objects falsely compare equal!");
3001 ok &= osresult2->setTimeStamp(
"2001-12-17T09:30:47.0Z");
3003 throw ErrorClass(
"Error during setTimeStamp!");
3004 ok &= (osresult1->IsEqual(osresult2));
3006 throw ErrorClass(
"setTimeStamp: osresult objects falsely compare unequal!");
3008 ok &= osresult1->setNumberOfOtherGeneralResults(3);
3010 throw ErrorClass(
"Error during setNumberOfOtherGeneralResults!");
3011 ok &= (!osresult1->IsEqual(osresult2));
3013 throw ErrorClass(
"setNumberOfOtherGeneralResults: osresult objects falsely compare equal!");
3014 ok &= osresult2->setNumberOfOtherGeneralResults(3);
3016 throw ErrorClass(
"Error during setNumberOfOtherGeneralResults!");
3017 ok &= (osresult1->IsEqual(osresult2));
3019 throw ErrorClass(
"setNumberOfOtherGeneralResults: osresult objects falsely compare unequal!");
3021 for (
int i=0; i < 3; ++i)
3023 ok &= osresult1->setOtherGeneralResultName(i,
"some name");
3025 throw ErrorClass(
"Error during setOtherGeneralResultName!");
3026 ok &= (!osresult1->IsEqual(osresult2));
3028 throw ErrorClass(
"setOtherGeneralResultName: osresult objects falsely compare equal!");
3029 ok &= osresult2->setOtherGeneralResultName(i,
"some name");
3031 throw ErrorClass(
"Error during setOtherGeneralResultName!");
3032 ok &= (osresult1->IsEqual(osresult2));
3034 throw ErrorClass(
"setOtherGeneralResultName: osresult objects falsely compare unequal!");
3036 ok &= osresult1->setOtherGeneralResultValue(i,
"some value");
3038 throw ErrorClass(
"Error during setOtherGeneralResultValue!");
3039 ok &= (!osresult1->IsEqual(osresult2));
3041 throw ErrorClass(
"setOtherGeneralResultValue: osresult objects falsely compare equal!");
3042 ok &= osresult2->setOtherGeneralResultValue(i,
"some value");
3044 throw ErrorClass(
"Error during setOtherGeneralResultValue!");
3045 ok &= (osresult1->IsEqual(osresult2));
3047 throw ErrorClass(
"setOtherGeneralResultValue: osresult objects falsely compare unequal!");
3049 ok &= osresult1->setOtherGeneralResultDescription(i,
"ABC 123");
3051 throw ErrorClass(
"Error during setOtherGeneralResultDescription!");
3052 ok &= (!osresult1->IsEqual(osresult2));
3054 throw ErrorClass(
"setOtherGeneralResultDescription: osresult objects falsely compare equal!");
3055 ok &= osresult2->setOtherGeneralResultDescription(i,
"ABC 123");
3057 throw ErrorClass(
"Error during setOtherGeneralResultDescription!");
3058 ok &= (osresult1->IsEqual(osresult2));
3060 throw ErrorClass(
"setOtherGeneralResultDescription: osresult objects falsely compare unequal!");
3064 cout <<
"Set <system> element" << endl;
3065 ok &= osresult1->setSystemInformation(
"testing 123");
3067 throw ErrorClass(
"Error during setSystemInformation!");
3068 ok &= (!osresult1->IsEqual(osresult2));
3070 throw ErrorClass(
"setSystemInformation: osresult objects falsely compare equal!");
3071 ok &= osresult2->setSystemInformation(
"testing 123");
3073 throw ErrorClass(
"Error during setSystemInformation!");
3074 ok &= (osresult1->IsEqual(osresult2));
3076 throw ErrorClass(
"setSystemInformation: osresult objects falsely compare unequal!");
3078 ok &= osresult1->setAvailableDiskSpaceUnit(
"megabyte");
3080 throw ErrorClass(
"Error during setAvailableDiskSpaceUnit!");
3081 ok &= (!osresult1->IsEqual(osresult2));
3083 throw ErrorClass(
"setAvailableDiskSpaceUnit: osresult objects falsely compare equal!");
3084 ok &= osresult2->setAvailableDiskSpaceUnit(
"megabyte");
3086 throw ErrorClass(
"Error during setAvailableDiskSpaceUnit!");
3087 ok &= (osresult1->IsEqual(osresult2));
3089 throw ErrorClass(
"setAvailableDiskSpaceUnit: osresult objects falsely compare unequal!");
3091 ok &= osresult1->setAvailableDiskSpaceDescription(
"testing 123");
3093 throw ErrorClass(
"Error during setAvailableDiskSpaceDescription!");
3094 ok &= (!osresult1->IsEqual(osresult2));
3096 throw ErrorClass(
"setAvailableDiskSpaceDescription: osresult objects falsely compare equal!");
3097 ok &= osresult2->setAvailableDiskSpaceDescription(
"testing 123");
3099 throw ErrorClass(
"Error during setAvailableDiskSpaceDescription!");
3100 ok &= (osresult1->IsEqual(osresult2));
3102 throw ErrorClass(
"setAvailableDiskSpaceDescription: osresult objects falsely compare unequal!");
3104 ok &= osresult1->setAvailableDiskSpaceValue(100.0);
3106 throw ErrorClass(
"Error during setAvailableDiskSpaceValue!");
3107 ok &= (!osresult1->IsEqual(osresult2));
3109 throw ErrorClass(
"setAvailableDiskSpaceValue: osresult objects falsely compare equal!");
3110 ok &= osresult2->setAvailableDiskSpaceValue(100.0);
3112 throw ErrorClass(
"Error during setAvailableDiskSpaceValue!");
3113 ok &= (osresult1->IsEqual(osresult2));
3115 throw ErrorClass(
"setAvailableDiskSpaceValue: osresult objects falsely compare unequal!");
3117 ok &= osresult1->setAvailableMemoryUnit(
"megabyte");
3119 throw ErrorClass(
"Error during setAvailableMemoryUnit!");
3120 ok &= (!osresult1->IsEqual(osresult2));
3122 throw ErrorClass(
"setAvailableMemoryUnit: osresult objects falsely compare equal!");
3123 ok &= osresult2->setAvailableMemoryUnit(
"megabyte");
3125 throw ErrorClass(
"Error during setAvailableMemoryUnit!");
3126 ok &= (osresult1->IsEqual(osresult2));
3129 throw ErrorClass(
"setAvailableMemoryUnit: osresult objects falsely compare unequal!");
3131 ok &= osresult1->setAvailableMemoryDescription(
"testing 123");
3133 throw ErrorClass(
"Error during setAvailableMemoryDescription!");
3134 ok &= (!osresult1->IsEqual(osresult2));
3136 throw ErrorClass(
"setAvailableMemoryDescription: osresult objects falsely compare equal!");
3137 ok &= osresult2->setAvailableMemoryDescription(
"testing 123");
3139 throw ErrorClass(
"Error during setAvailableMemoryDescription!");
3140 ok &= (osresult1->IsEqual(osresult2));
3142 throw ErrorClass(
"setAvailableMemoryDescription: osresult objects falsely compare unequal!");
3144 ok &= osresult1->setAvailableMemoryValue(100.0);
3146 throw ErrorClass(
"Error during setAvailableMemoryValue!");
3147 ok &= (!osresult1->IsEqual(osresult2));
3149 throw ErrorClass(
"setAvailableMemoryValue: osresult objects falsely compare equal!");
3150 ok &= osresult2->setAvailableMemoryValue(100.0);
3152 throw ErrorClass(
"Error during setAvailableMemoryValue!");
3153 ok &= (osresult1->IsEqual(osresult2));
3155 throw ErrorClass(
"setAvailableMemoryValue: osresult objects falsely compare unequal!");
3157 ok &= osresult1->setAvailableCPUSpeedUnit(
"megahertz");
3159 throw ErrorClass(
"Error during setAvailableCPUSpeedUnit!");
3160 ok &= (!osresult1->IsEqual(osresult2));
3162 throw ErrorClass(
"setAvailableCPUSpeedUnit: osresult objects falsely compare equal!");
3163 ok &= osresult2->setAvailableCPUSpeedUnit(
"megahertz");
3165 throw ErrorClass(
"Error during setAvailableCPUSpeedUnit!");
3166 ok &= (osresult1->IsEqual(osresult2));
3168 throw ErrorClass(
"setAvailableCPUSpeedUnit: osresult objects falsely compare unequal!");
3170 ok &= osresult1->setAvailableCPUSpeedDescription(
"testing 123");
3172 throw ErrorClass(
"Error during setAvailableCPUSpeedDescription!");
3173 ok &= (!osresult1->IsEqual(osresult2));
3175 throw ErrorClass(
"setAvailableCPUSpeedDescription: osresult objects falsely compare equal!");
3176 ok &= osresult2->setAvailableCPUSpeedDescription(
"testing 123");
3178 throw ErrorClass(
"Error during setAvailableCPUSpeedDescription!");
3179 ok &= (osresult1->IsEqual(osresult2));
3181 throw ErrorClass(
"setAvailableCPUSpeedDescription: osresult objects falsely compare unequal!");
3183 ok &= osresult1->setAvailableCPUSpeedValue(100.0);
3185 throw ErrorClass(
"Error during setAvailableCPUSpeedValue!");
3186 ok &= (!osresult1->IsEqual(osresult2));
3188 throw ErrorClass(
"setAvailableCPUSpeedValue: osresult objects falsely compare equal!");
3189 ok &= osresult2->setAvailableCPUSpeedValue(100.0);
3191 throw ErrorClass(
"Error during setAvailableCPUSpeedValue!");
3192 ok &= (osresult1->IsEqual(osresult2));
3194 throw ErrorClass(
"setAvailableCPUSpeedValue: osresult objects falsely compare unequal!");
3196 ok &= osresult1->setAvailableCPUNumberDescription(
"testing 123");
3198 throw ErrorClass(
"Error during setAvailableCPUNumberDescription!");
3199 ok &= (!osresult1->IsEqual(osresult2));
3201 throw ErrorClass(
"setAvailableCPUNumberDescription: osresult objects falsely compare equal!");
3202 ok &= osresult2->setAvailableCPUNumberDescription(
"testing 123");
3204 throw ErrorClass(
"Error during setAvailableCPUNumberDescription!");
3205 ok &= (osresult1->IsEqual(osresult2));
3207 throw ErrorClass(
"setAvailableCPUNumberDescription: osresult objects falsely compare unequal!");
3209 ok &= osresult1->setAvailableCPUNumberValue(100);
3211 throw ErrorClass(
"Error during setAvailableCPUNumberValue!");
3212 ok &= (!osresult1->IsEqual(osresult2));
3214 throw ErrorClass(
"setAvailableCPUNumberValue: osresult objects falsely compare equal!");
3215 ok &= osresult2->setAvailableCPUNumberValue(100);
3217 throw ErrorClass(
"Error during setAvailableCPUNumberValue!");
3218 ok &= (osresult1->IsEqual(osresult2));
3220 throw ErrorClass(
"setAvailableCPUNumberValue: osresult objects falsely compare unequal!");
3222 ok &= osresult1->setNumberOfOtherSystemResults(3);
3224 throw ErrorClass(
"Error during setNumberOfOtherSystemResults!");
3225 ok &= (!osresult1->IsEqual(osresult2));
3227 throw ErrorClass(
"setNumberOfOtherSystemResults: osresult objects falsely compare equal!");
3228 ok &= osresult2->setNumberOfOtherSystemResults(3);
3230 throw ErrorClass(
"Error during setNumberOfOtherSystemResults!");
3231 ok &= (osresult1->IsEqual(osresult2));
3233 throw ErrorClass(
"setNumberOfOtherSystemResults: osresult objects falsely compare unequal!");
3235 for (
int i=0; i < 3; ++i)
3237 ok &= osresult1->setOtherSystemResultName(i,
"some name");
3239 throw ErrorClass(
"Error during setOtherSystemResultName!");
3240 ok &= (!osresult1->IsEqual(osresult2));
3242 throw ErrorClass(
"setOtherSystemResultName: osresult objects falsely compare equal!");
3243 ok &= osresult2->setOtherSystemResultName(i,
"some name");
3245 throw ErrorClass(
"Error during setOtherSystemResultName!");
3246 ok &= (osresult1->IsEqual(osresult2));
3248 throw ErrorClass(
"setOtherSystemResultName: osresult objects falsely compare unequal!");
3250 ok &= osresult1->setOtherSystemResultValue(i,
"some value");
3252 throw ErrorClass(
"Error during setOtherSystemResultValue!");
3253 ok &= (!osresult1->IsEqual(osresult2));
3255 throw ErrorClass(
"setOtherSystemResultValue: osresult objects falsely compare equal!");
3256 ok &= osresult2->setOtherSystemResultValue(i,
"some value");
3258 throw ErrorClass(
"Error during setOtherSystemResultValue!");
3259 ok &= (osresult1->IsEqual(osresult2));
3261 throw ErrorClass(
"setOtherSystemResultValue: osresult objects falsely compare unequal!");
3263 ok &= osresult1->setOtherSystemResultDescription(i,
"ABC 123");
3265 throw ErrorClass(
"Error during setSOtherSystemResultDescription!");
3266 ok &= (!osresult1->IsEqual(osresult2));
3268 throw ErrorClass(
"setOtherSystemResultDescription: osresult objects falsely compare equal!");
3269 ok &= osresult2->setOtherSystemResultDescription(i,
"ABC 123");
3271 throw ErrorClass(
"Error during setOtherSystemResultDescription!");
3272 ok &= (osresult1->IsEqual(osresult2));
3274 throw ErrorClass(
"setOtherSystemResultDescription: osresult objects falsely compare unequal!");
3278 cout <<
"Set <service> element" << endl;
3279 ok &= osresult1->setCurrentState(
"busy");
3281 throw ErrorClass(
"Error during setCurrentState!");
3282 ok &= (!osresult1->IsEqual(osresult2));
3284 throw ErrorClass(
"setCurrentState: osresult objects falsely compare equal!");
3285 ok &= osresult2->setCurrentState(
"busy");
3287 throw ErrorClass(
"Error during setCurrentState!");
3288 ok &= (osresult1->IsEqual(osresult2));
3290 throw ErrorClass(
"setCurrentState: osresult objects falsely compare unequal!");
3292 ok &= osresult1->setCurrentJobCount(123);
3294 throw ErrorClass(
"Error during setCurrentJobCount!");
3295 ok &= (!osresult1->IsEqual(osresult2));
3297 throw ErrorClass(
"setCurrentJobCount: osresult objects falsely compare equal!");
3298 ok &= osresult2->setCurrentJobCount(123);
3300 throw ErrorClass(
"Error during setCurrentJobCount!");
3301 ok &= (osresult1->IsEqual(osresult2));
3303 throw ErrorClass(
"setCurrentJobCount: osresult objects falsely compare unequal!");
3305 ok &= osresult1->setTotalJobsSoFar(123);
3307 throw ErrorClass(
"Error during setTotalJobsSoFar!");
3308 ok &= (!osresult1->IsEqual(osresult2));
3310 throw ErrorClass(
"setTotalJobsSoFar: osresult objects falsely compare equal!");
3311 ok &= osresult2->setTotalJobsSoFar(123);
3313 throw ErrorClass(
"Error during setTotalJobsSoFar!");
3314 ok &= (osresult1->IsEqual(osresult2));
3316 throw ErrorClass(
"setTotalJobsSoFar: osresult objects falsely compare unequal!");
3318 ok &= osresult1->setTimeServiceStarted(
"2001-12-17T09:30:47.0Z");
3320 throw ErrorClass(
"Error during setTimeServiceStarted!");
3321 ok &= (!osresult1->IsEqual(osresult2));
3323 throw ErrorClass(
"setTimeServiceStarted: osresult objects falsely compare equal!");
3324 ok &= osresult2->setTimeServiceStarted(
"2001-12-17T09:30:47.0Z");
3326 throw ErrorClass(
"Error during setTimeServiceStarted!");
3327 ok &= (osresult1->IsEqual(osresult2));
3329 throw ErrorClass(
"setTimeServiceStarted: osresult objects falsely compare unequal!");
3331 ok &= osresult1->setServiceUtilization(0.8);
3333 throw ErrorClass(
"Error during setServiceUtilization!");
3334 ok &= (!osresult1->IsEqual(osresult2));
3336 throw ErrorClass(
"setServiceUtilization: osresult objects falsely compare equal!");
3337 ok &= osresult2->setServiceUtilization(0.8);
3339 throw ErrorClass(
"Error during setServiceUtilization!");
3340 ok &= (osresult1->IsEqual(osresult2));
3342 throw ErrorClass(
"setServiceUtilization: osresult objects falsely compare unequal!");
3344 ok &= osresult1->setNumberOfOtherServiceResults(3);
3346 throw ErrorClass(
"Error during setNumberOfOtherServiceResults!");
3347 ok &= (!osresult1->IsEqual(osresult2));
3349 throw ErrorClass(
"setNumberOfOtherServiceResults: osresult objects falsely compare equal!");
3350 ok &= osresult2->setNumberOfOtherServiceResults(3);
3352 throw ErrorClass(
"Error during setNumberOfOtherServiceResults!");
3353 ok &= (osresult1->IsEqual(osresult2));
3355 throw ErrorClass(
"setNumberOfOtherServiceResults: osresult objects falsely compare unequal!");
3357 for (
int i=0; i < 3; ++i)
3359 ok &= osresult1->setOtherServiceResultName(i,
"some name");
3361 throw ErrorClass(
"Error during setOtherServiceResultName!");
3362 ok &= (!osresult1->IsEqual(osresult2));
3364 throw ErrorClass(
"setOtherServiceResultName: osresult objects falsely compare equal!");
3365 ok &= osresult2->setOtherServiceResultName(i,
"some name");
3367 throw ErrorClass(
"Error during setOtherServiceResultName!");
3368 ok &= (osresult1->IsEqual(osresult2));
3370 throw ErrorClass(
"setOtherServiceResultName: osresult objects falsely compare unequal!");
3372 ok &= osresult1->setOtherServiceResultValue(i,
"some value");
3374 throw ErrorClass(
"Error during setOtherServiceResultValue!");
3375 ok &= (!osresult1->IsEqual(osresult2));
3377 throw ErrorClass(
"setOtherServiceResultValue: osresult objects falsely compare equal!");
3378 ok &= osresult2->setOtherServiceResultValue(i,
"some value");
3380 throw ErrorClass(
"Error during setOtherServiceResultValue!");
3381 ok &= (osresult1->IsEqual(osresult2));
3383 throw ErrorClass(
"setOtherServiceResultValue: osresult objects falsely compare unequal!");
3386 ok &= osresult1->setOtherServiceResultDescription(i,
"ABC 123");
3388 throw ErrorClass(
"Error during setOtherServiceResultDescription!");
3389 ok &= (!osresult1->IsEqual(osresult2));
3391 throw ErrorClass(
"setOtherServiceResultDescription: osresult objects falsely compare equal!");
3392 ok &= osresult2->setOtherServiceResultDescription(i,
"ABC 123");
3394 throw ErrorClass(
"Error during setOtherServiceResultDescription!");
3395 ok &= (osresult1->IsEqual(osresult2));
3397 throw ErrorClass(
"setOtherServiceResultDescription: osresult objects falsely compare unequal!");
3401 cout <<
"Set <job> element" << endl;
3402 ok &= osresult1->setJobStatus(
"waiting");
3404 throw ErrorClass(
"Error during setJobStatus!");
3405 ok &= (!osresult1->IsEqual(osresult2));
3407 throw ErrorClass(
"setJobStatus: osresult objects falsely compare equal!");
3408 ok &= osresult2->setJobStatus(
"waiting");
3410 throw ErrorClass(
"Error during setJobStatus!");
3411 ok &= (osresult1->IsEqual(osresult2));
3413 throw ErrorClass(
"setJobStatus: osresult objects falsely compare unequal!");
3415 ok &= osresult1->setJobSubmitTime(
"2001-12-17T09:30:47.0Z");
3417 throw ErrorClass(
"Error during setJobSubmitTime!");
3418 ok &= (!osresult1->IsEqual(osresult2));
3420 throw ErrorClass(
"setJobSubmitTime: osresult objects falsely compare equal!");
3421 ok &= osresult2->setJobSubmitTime(
"2001-12-17T09:30:47.0Z");
3423 throw ErrorClass(
"Error during setJobSubmitTime!");
3424 ok &= (osresult1->IsEqual(osresult2));
3426 throw ErrorClass(
"setJobSubmitTime: osresult objects falsely compare unequal!");
3428 ok &= osresult1->setScheduledStartTime(
"2001-12-17T09:30:47.0Z");
3430 throw ErrorClass(
"Error during setScheduledStartTime!");
3431 ok &= (!osresult1->IsEqual(osresult2));
3433 throw ErrorClass(
"setScheduledStartTime: osresult objects falsely compare equal!");
3434 ok &= osresult2->setScheduledStartTime(
"2001-12-17T09:30:47.0Z");
3436 throw ErrorClass(
"Error during setScheduledStartTime!");
3437 ok &= (osresult1->IsEqual(osresult2));
3439 throw ErrorClass(
"setScheduledStartTime: osresult objects falsely compare unequal!");
3441 ok &= osresult1->setActualStartTime(
"2001-12-17T09:30:47.0Z");
3443 throw ErrorClass(
"Error during setActualStartTime!");
3444 ok &= (!osresult1->IsEqual(osresult2));
3446 throw ErrorClass(
"setActualStartTime: osresult objects falsely compare equal!");
3447 ok &= osresult2->setActualStartTime(
"2001-12-17T09:30:47.0Z");
3449 throw ErrorClass(
"Error during setActualStartTime!");
3450 ok &= (osresult1->IsEqual(osresult2));
3452 throw ErrorClass(
"setActualStartTime: osresult objects falsely compare unequal!");
3454 ok &= osresult1->setJobEndTime(
"2001-12-17T09:30:47.0Z");
3456 throw ErrorClass(
"Error during setJobEndTime!");
3457 ok &= (!osresult1->IsEqual(osresult2));
3459 throw ErrorClass(
"setJobEndTime: osresult objects falsely compare equal!");
3460 ok &= osresult2->setJobEndTime(
"2001-12-17T09:30:47.0Z");
3462 throw ErrorClass(
"Error during setJobEndTime!");
3463 ok &= (osresult1->IsEqual(osresult2));
3465 throw ErrorClass(
"setJobEndTime: osresult objects falsely compare unequal!");
3467 ok &= osresult1->setNumberOfTimes(3);
3469 throw ErrorClass(
"Error during setNumberOfTimes!");
3470 ok &= (!osresult1->IsEqual(osresult2));
3472 throw ErrorClass(
"setNumberOfTimes: osresult objects falsely compare equal!");
3473 ok &= osresult2->setNumberOfTimes(3);
3475 throw ErrorClass(
"Error during setNumberOfTimes!");
3476 ok &= (osresult1->IsEqual(osresult2));
3478 throw ErrorClass(
"setNumberOfTimes: osresult objects falsely compare unequal!");
3480 for (
int i=0; i < 3; ++i)
3482 ok &= osresult1->setTimingInformation(i,
"cpuTime",
"other",
"second",
"blabla",3.14);
3484 throw ErrorClass(
"Error during setTimingInformation!");
3485 ok &= (!osresult1->IsEqual(osresult2));
3487 throw ErrorClass(
"setTimingInformation: osresult objects falsely compare equal!");
3488 ok &= osresult2->setTimingInformation(i,
"cpuTime",
"other",
"second",
"blabla",3.14);
3490 throw ErrorClass(
"Error during setTimingInformation!");
3491 ok &= (osresult1->IsEqual(osresult2));
3493 throw ErrorClass(
"setTimingInformation: osresult objects falsely compare unequal!");
3497 ok &= osresult1->setUsedDiskSpaceUnit(
"megabyte");
3499 throw ErrorClass(
"Error during setUsedDiskSpaceUnit!");
3500 ok &= (!osresult1->IsEqual(osresult2));
3502 throw ErrorClass(
"setUsedDiskSpaceUnit: osresult objects falsely compare equal!");
3503 ok &= osresult2->setUsedDiskSpaceUnit(
"megabyte");
3505 throw ErrorClass(
"Error during setUsedDiskSpaceUnit!");
3506 ok &= (osresult1->IsEqual(osresult2));
3508 throw ErrorClass(
"setUsedDiskSpaceUnit: osresult objects falsely compare unequal!");
3510 ok &= osresult1->setUsedDiskSpaceDescription(
"testing 123");
3512 throw ErrorClass(
"Error during setUsedDiskSpaceDescription!");
3513 ok &= (!osresult1->IsEqual(osresult2));
3515 throw ErrorClass(
"setUsedDiskSpaceDescription: osresult objects falsely compare equal!");
3516 ok &= osresult2->setUsedDiskSpaceDescription(
"testing 123");
3518 throw ErrorClass(
"Error during setUsedDiskSpaceDescription!");
3519 ok &= (osresult1->IsEqual(osresult2));
3521 throw ErrorClass(
"setUsedDiskSpaceDescription: osresult objects falsely compare unequal!");
3523 ok &= osresult1->setUsedDiskSpaceValue(100.0);
3525 throw ErrorClass(
"Error during setUsedDiskSpaceValue!");
3526 ok &= (!osresult1->IsEqual(osresult2));
3528 throw ErrorClass(
"setUsedDiskSpaceValue: osresult objects falsely compare equal!");
3529 ok &= osresult2->setUsedDiskSpaceValue(100.0);
3531 throw ErrorClass(
"Error during setUsedDiskSpaceValue!");
3532 ok &= (osresult1->IsEqual(osresult2));
3534 throw ErrorClass(
"setUsedDiskSpaceValue: osresult objects falsely compare unequal!");
3536 ok &= osresult1->setUsedMemoryUnit(
"megabyte");
3538 throw ErrorClass(
"Error during setUsedMemoryUnit!");
3539 ok &= (!osresult1->IsEqual(osresult2));
3541 throw ErrorClass(
"setUsedMemoryUnit: osresult objects falsely compare equal!");
3542 ok &= osresult2->setUsedMemoryUnit(
"megabyte");
3544 throw ErrorClass(
"Error during setUsedMemoryUnit!");
3545 ok &= (osresult1->IsEqual(osresult2));
3547 throw ErrorClass(
"setUsedMemoryUnit: osresult objects falsely compare unequal!");
3549 ok &= osresult1->setUsedMemoryDescription(
"testing 123");
3551 throw ErrorClass(
"Error during setUsedMemoryDescription!");
3552 ok &= (!osresult1->IsEqual(osresult2));
3554 throw ErrorClass(
"setUsedMemoryDescription: osresult objects falsely compare equal!");
3555 ok &= osresult2->setUsedMemoryDescription(
"testing 123");
3557 throw ErrorClass(
"Error during setUsedMemoryDescription!");
3558 ok &= (osresult1->IsEqual(osresult2));
3560 throw ErrorClass(
"setUsedMemoryDescription: osresult objects falsely compare unequal!");
3562 ok &= osresult1->setUsedMemoryValue(100.0);
3564 throw ErrorClass(
"Error during setUsedMemoryValue!");
3565 ok &= (!osresult1->IsEqual(osresult2));
3567 throw ErrorClass(
"setUsedMemoryValue: osresult objects falsely compare equal!");
3568 ok &= osresult2->setUsedMemoryValue(100.0);
3570 throw ErrorClass(
"Error during setUsedMemoryValue!");
3571 ok &= (osresult1->IsEqual(osresult2));
3573 throw ErrorClass(
"setUsedMemoryValue: osresult objects falsely compare unequal!");
3575 ok &= osresult1->setUsedCPUSpeedUnit(
"megahertz");
3577 throw ErrorClass(
"Error during setUsedCPUSpeedUnit!");
3578 ok &= (!osresult1->IsEqual(osresult2));
3580 throw ErrorClass(
"setUsedCPUSpeedUnit: osresult objects falsely compare equal!");
3581 ok &= osresult2->setUsedCPUSpeedUnit(
"megahertz");
3583 throw ErrorClass(
"Error during setUsedCPUSpeedUnit!");
3584 ok &= (osresult1->IsEqual(osresult2));
3586 throw ErrorClass(
"setUsedCPUSpeedUnit: osresult objects falsely compare unequal!");
3588 ok &= osresult1->setUsedCPUSpeedDescription(
"testing 123");
3590 throw ErrorClass(
"Error during setUsedCPUSpeedDescription!");
3591 ok &= (!osresult1->IsEqual(osresult2));
3593 throw ErrorClass(
"setUsedCPUSpeedDescription: osresult objects falsely compare equal!");
3594 ok &= osresult2->setUsedCPUSpeedDescription(
"testing 123");
3596 throw ErrorClass(
"Error during setUsedCPUSpeedDescription!");
3597 ok &= (osresult1->IsEqual(osresult2));
3599 throw ErrorClass(
"setUsedCPUSpeedDescription: osresult objects falsely compare unequal!");
3601 ok &= osresult1->setUsedCPUSpeedValue(100.0);
3603 throw ErrorClass(
"Error during setUsedCPUSpeedValue!");
3604 ok &= (!osresult1->IsEqual(osresult2));
3606 throw ErrorClass(
"setUsedCPUSpeedValue: osresult objects falsely compare equal!");
3607 ok &= osresult2->setUsedCPUSpeedValue(100.0);
3609 throw ErrorClass(
"Error during setUsedCPUSpeedValue!");
3610 ok &= (osresult1->IsEqual(osresult2));
3612 throw ErrorClass(
"setUsedCPUSpeedValue: osresult objects falsely compare unequal!");
3614 ok &= osresult1->setUsedCPUNumberDescription(
"testing 123");
3616 throw ErrorClass(
"Error during setUsedCPUNumberDescription!");
3617 ok &= (!osresult1->IsEqual(osresult2));
3619 throw ErrorClass(
"setUsedCPUNumberDescription: osresult objects falsely compare equal!");
3620 ok &= osresult2->setUsedCPUNumberDescription(
"testing 123");
3622 throw ErrorClass(
"Error during setUsedCPUNumberDescription!");
3623 ok &= (osresult1->IsEqual(osresult2));
3625 throw ErrorClass(
"setUsedCPUNumberDescription: osresult objects falsely compare unequal!");
3627 ok &= osresult1->setUsedCPUNumberValue(100);
3629 throw ErrorClass(
"Error during setUsedCPUNumberValue!");
3630 ok &= (!osresult1->IsEqual(osresult2));
3632 throw ErrorClass(
"setUsedCPUNumberValue: osresult objects falsely compare equal!");
3633 ok &= osresult2->setUsedCPUNumberValue(100);
3635 throw ErrorClass(
"Error during setUsedCPUNumberValue!");
3636 ok &= (osresult1->IsEqual(osresult2));
3638 throw ErrorClass(
"setUsedCPUNumberValue: osresult objects falsely compare unequal!");
3640 ok &= osresult1->setNumberOfOtherJobResults(3);
3642 throw ErrorClass(
"Error during setNumberOfOtherJobResults!");
3643 ok &= (!osresult1->IsEqual(osresult2));
3645 throw ErrorClass(
"setNumberOfOtherJobResults: osresult objects falsely compare equal!");
3646 ok &= osresult2->setNumberOfOtherJobResults(3);
3648 throw ErrorClass(
"Error during setNumberOfOtherJobResults!");
3649 ok &= (osresult1->IsEqual(osresult2));
3651 throw ErrorClass(
"setNumberOfOtherJobResults: osresult objects falsely compare unequal!");
3653 for (
int i=0; i < 3; ++i)
3655 ok &= osresult1->setOtherJobResultName(i,
"some name");
3657 throw ErrorClass(
"Error during setOtherJobResultName!");
3658 ok &= (!osresult1->IsEqual(osresult2));
3660 throw ErrorClass(
"setOtherJobResultName: osresult objects falsely compare equal!");
3661 ok &= osresult2->setOtherJobResultName(i,
"some name");
3663 throw ErrorClass(
"Error during setOtherJobResultName!");
3664 ok &= (osresult1->IsEqual(osresult2));
3666 throw ErrorClass(
"setOtherJobResultName: osresult objects falsely compare unequal!");
3668 ok &= osresult1->setOtherJobResultValue(i,
"some value");
3670 throw ErrorClass(
"Error during setOtherJobResultValue!");
3671 ok &= (!osresult1->IsEqual(osresult2));
3673 throw ErrorClass(
"setOtherJobResultValue: osresult objects falsely compare equal!");
3674 ok &= osresult2->setOtherJobResultValue(i,
"some value");
3676 throw ErrorClass(
"Error during setOtherJobResultValue!");
3677 ok &= (osresult1->IsEqual(osresult2));
3679 throw ErrorClass(
"setOtherJobResultValue: osresult objects falsely compare unequal!");
3681 ok &= osresult1->setOtherJobResultDescription(i,
"ABC 123");
3683 throw ErrorClass(
"Error during setOtherJobResultDescription!");
3684 ok &= (!osresult1->IsEqual(osresult2));
3686 throw ErrorClass(
"setOtherJobResultDescription: osresult objects falsely compare equal!");
3687 ok &= osresult2->setOtherJobResultDescription(i,
"ABC 123");
3689 throw ErrorClass(
"Error during setOtherJobResultDescription!");
3690 ok &= (osresult1->IsEqual(osresult2));
3692 throw ErrorClass(
"setOtherJobResultDescription: osresult objects falsely compare unequal!");
3695 cout <<
"Set <optimization> element" << endl;
3696 ok &= osresult1->setSolutionNumber(2);
3698 throw ErrorClass(
"Error during setSolutionNumber!");
3699 ok &= (!osresult1->IsEqual(osresult2));
3701 throw ErrorClass(
"setSolutionNumber: osresult objects falsely compare equal!");
3702 ok &= osresult2->setSolutionNumber(2);
3704 throw ErrorClass(
"Error during setSolutionNumber!");
3705 ok &= (osresult1->IsEqual(osresult2));
3707 throw ErrorClass(
"setSolutionNumber: osresult objects falsely compare unequal!");
3709 ok &= osresult1->setVariableNumber(4);
3711 throw ErrorClass(
"Error during setVariableNumber!");
3712 ok &= (!osresult1->IsEqual(osresult2));
3714 throw ErrorClass(
"setVariableNumber: osresult objects falsely compare equal!");
3715 ok &= osresult2->setVariableNumber(4);
3717 throw ErrorClass(
"Error during setVariableNumber!");
3718 ok &= (osresult1->IsEqual(osresult2));
3720 throw ErrorClass(
"setVariableNumber: osresult objects falsely compare unequal!");
3722 ok &= osresult1->setObjectiveNumber(2);
3724 throw ErrorClass(
"Error during setObjectiveNumber!");
3725 ok &= (!osresult1->IsEqual(osresult2));
3727 throw ErrorClass(
"setObjectiveNumber: osresult objects falsely compare equal!");
3728 ok &= osresult2->setObjectiveNumber(2);
3730 throw ErrorClass(
"Error during setObjectiveNumber!");
3731 ok &= (osresult1->IsEqual(osresult2));
3733 throw ErrorClass(
"setObjectiveNumber: osresult objects falsely compare unequal!");
3735 ok &= osresult1->setConstraintNumber(3);
3737 throw ErrorClass(
"Error during setConstraintNumber!");
3738 ok &= (!osresult1->IsEqual(osresult2));
3740 throw ErrorClass(
"setConstraintNumber: osresult objects falsely compare equal!");
3741 ok &= osresult2->setConstraintNumber(3);
3743 throw ErrorClass(
"Error during setConstraintNumber!");
3744 ok &= (osresult1->IsEqual(osresult2));
3746 throw ErrorClass(
"setConstraintNumber: osresult objects falsely compare unequal!");
3748 for (
int i=0; i < 2; ++i)
3750 ok &= osresult1->setSolutionTargetObjectiveIdx(i,-2);
3752 throw ErrorClass(
"Error during setSolutionTargetObjectiveIdx!");
3753 ok &= (!osresult1->IsEqual(osresult2));
3755 throw ErrorClass(
"setSolutionTargetObjectiveIdx: osresult objects falsely compare equal!");
3756 ok &= osresult2->setSolutionTargetObjectiveIdx(i,-2);
3758 throw ErrorClass(
"Error during setSolutionTargetObjectiveIdx!");
3759 ok &= (osresult1->IsEqual(osresult2));
3761 throw ErrorClass(
"setSolutionTargetObjectiveIdx: osresult objects falsely compare unequal!");
3763 ok &= osresult1->setSolutionTargetObjectiveName(i,
"a.n.other");
3765 throw ErrorClass(
"Error during setSolutionTargetObjectiveName!");
3766 ok &= (!osresult1->IsEqual(osresult2));
3768 throw ErrorClass(
"setSolutionTargetObjectiveName: osresult objects falsely compare equal!");
3769 ok &= osresult2->setSolutionTargetObjectiveName(i,
"a.n.other");
3771 throw ErrorClass(
"Error during setSolutionTargetObjectiveName!");
3772 ok &= (osresult1->IsEqual(osresult2));
3774 throw ErrorClass(
"setSolutionTargetObjectiveName: osresult objects falsely compare unequal!");
3776 ok &= osresult1->setSolutionWeightedObjectives(i,
"true");
3778 throw ErrorClass(
"Error during setSolutionWeightedObjectives!");
3779 ok &= (!osresult1->IsEqual(osresult2));
3781 throw ErrorClass(
"setSolutionWeightedObjectives: osresult objects falsely compare equal!");
3782 ok &= osresult2->setSolutionWeightedObjectives(i,
"true");
3784 throw ErrorClass(
"Error during setSolutionWeightedObjectives!");
3785 ok &= (osresult1->IsEqual(osresult2));
3787 throw ErrorClass(
"setSolutionWeightedObjectives: osresult objects falsely compare unequal!");
3789 ok &= osresult1->setSolutionStatusType(i,
"locallyOptimal");
3791 throw ErrorClass(
"Error during setSolutionStatusType!");
3792 ok &= (!osresult1->IsEqual(osresult2));
3794 throw ErrorClass(
"setSolutionStatusType: osresult objects falsely compare equal!");
3795 ok &= osresult2->setSolutionStatusType(i,
"locallyOptimal");
3797 throw ErrorClass(
"Error during setSolutionStatusType!");
3798 ok &= (osresult1->IsEqual(osresult2));
3800 throw ErrorClass(
"setSolutionStatusType: osresult objects falsely compare unequal!");
3802 ok &= osresult1->setSolutionStatusDescription(i,
"ABC 123");
3804 throw ErrorClass(
"Error during setSolutionStatusDescription!");
3805 ok &= (!osresult1->IsEqual(osresult2));
3807 throw ErrorClass(
"setSolutionStatusDescription: osresult objects falsely compare equal!");
3808 ok &= osresult2->setSolutionStatusDescription(i,
"ABC 123");
3810 throw ErrorClass(
"Error during setSolutionStatusDescription!");
3811 ok &= (osresult1->IsEqual(osresult2));
3813 throw ErrorClass(
"setSolutionStatusDescription: osresult objects falsely compare unequal!");
3815 ok &= osresult1->setNumberOfSolutionSubstatuses(i,3);
3817 throw ErrorClass(
"Error during setNumberOfSolutionSubstatuses!");
3818 ok &= (!osresult1->IsEqual(osresult2));
3820 throw ErrorClass(
"setNumberOfSolutionSubstatuses: osresult objects falsely compare equal!");
3821 ok &= osresult2->setNumberOfSolutionSubstatuses(i,3);
3823 throw ErrorClass(
"Error during setNumberOfSolutionSubstatuses!");
3824 ok &= (osresult1->IsEqual(osresult2));
3826 throw ErrorClass(
"setNumberOfSolutionSubstatuses: osresult objects falsely compare unequal!");
3828 for (
int j=0; j < 3; ++j)
3830 ok &= osresult1->setSolutionSubstatusType(i,j,
"other");
3832 throw ErrorClass(
"Error during setSolutionSubstatusType!");
3833 ok &= (!osresult1->IsEqual(osresult2));
3835 throw ErrorClass(
"setSolutionSubstatusType: osresult objects falsely compare equal!");
3836 ok &= osresult2->setSolutionSubstatusType(i,j,
"other");
3838 throw ErrorClass(
"Error during setSolutionSubstatusType!");
3839 ok &= (osresult1->IsEqual(osresult2));
3841 throw ErrorClass(
"setSolutionSubstatusType: osresult objects falsely compare unequal!");
3843 ok &= osresult1->setSolutionSubstatusDescription(i,j,
"whatever");
3845 throw ErrorClass(
"Error during setSolutionSubstatusDescription!");
3846 ok &= (!osresult1->IsEqual(osresult2));
3848 throw ErrorClass(
"setSolutionSubstatusDescription: osresult objects falsely compare equal!");
3849 ok &= osresult2->setSolutionSubstatusDescription(i,j,
"whatever");
3851 throw ErrorClass(
"Error during setSolutionSubstatusDescription!");
3852 ok &= (osresult1->IsEqual(osresult2));
3854 throw ErrorClass(
"setSolutionSubstatusDescription: osresult objects falsely compare unequal!");
3857 ok &= osresult1->setSolutionMessage(i,
"ABC 123");
3859 throw ErrorClass(
"Error during setSolutionMessage!");
3860 ok &= (!osresult1->IsEqual(osresult2));
3862 throw ErrorClass(
"setSolutionMessage: osresult objects falsely compare equal!");
3863 ok &= osresult2->setSolutionMessage(i,
"ABC 123");
3865 throw ErrorClass(
"Error during setSolutionMessage!");
3866 ok &= (osresult1->IsEqual(osresult2));
3868 throw ErrorClass(
"setSolutionMessage: osresult objects falsely compare unequal!");
3870 ok &= osresult1->setNumberOfVarValues(i,3);
3872 throw ErrorClass(
"Error during setNumberOfVarValues!");
3873 ok &= (!osresult1->IsEqual(osresult2));
3875 throw ErrorClass(
"setNumberOfVarValues: osresult objects falsely compare equal!");
3876 ok &= osresult2->setNumberOfVarValues(i,3);
3878 throw ErrorClass(
"Error during setNumberOfVarValues!");
3879 ok &= (osresult1->IsEqual(osresult2));
3881 throw ErrorClass(
"setNumberOfVarValues: osresult objects falsely compare unequal!");
3883 for (
int j=0; j < 3; ++j)
3885 ok &= osresult1->setVarValue(i,j,j,
"varname",3.14);
3887 throw ErrorClass(
"Error during setVarValue!");
3888 ok &= (!osresult1->IsEqual(osresult2));
3890 throw ErrorClass(
"setVarValue: osresult objects falsely compare equal!");
3891 ok &= osresult2->setVarValue(i,j,j,
"varname",3.14);
3893 throw ErrorClass(
"Error during setVarValue!");
3894 ok &= (osresult1->IsEqual(osresult2));
3896 throw ErrorClass(
"setVarValue: osresult objects falsely compare unequal!");
3899 ok &= osresult1->setNumberOfVarValuesString(i,3);
3901 throw ErrorClass(
"Error during setNumberOfVarValuesString!");
3902 ok &= (!osresult1->IsEqual(osresult2));
3904 throw ErrorClass(
"setNumberOfVarValuesString: osresult objects falsely compare equal!");
3907 ok &= osresult2->setNumberOfVarValuesString(i,3);
3909 throw ErrorClass(
"Error during setNumberOfVarValuesString!");
3910 ok &= (osresult1->IsEqual(osresult2));
3912 throw ErrorClass(
"setNumberOfVarValuesString: osresult objects falsely compare unequal!");
3914 for (
int j=0; j < 3; ++j)
3916 ok &= osresult1->setVarValueString(i,j,j,
"varname",
"one");
3918 throw ErrorClass(
"Error during setVarValueString!");
3919 ok &= (!osresult1->IsEqual(osresult2));
3921 throw ErrorClass(
"setVarValueString: osresult objects falsely compare equal!");
3922 ok &= osresult2->setVarValueString(i,j,j,
"varname",
"one");
3924 throw ErrorClass(
"Error during setVarValueString!");
3925 ok &= (osresult1->IsEqual(osresult2));
3927 throw ErrorClass(
"setVarValueString: osresult objects falsely compare unequal!");
3930 intArray[0]=1000*i + 1100 + 10 + 1;
3931 intArray[1]=1000*i + 1100 + 10 + 2;
3932 intArray[2]=1000*i + 1100 + 10 + 3;
3936 throw ErrorClass(
"Error during setBasisStatus (variables basic)!");
3937 ok &= (!osresult1->IsEqual(osresult2));
3939 throw ErrorClass(
"setBasisStatus (variables basic): osresult objects falsely compare equal!");
3942 throw ErrorClass(
"Error during setBasisStatus (variables basic)!");
3943 ok &= (osresult1->IsEqual(osresult2));
3945 throw ErrorClass(
"setBasisStatus (variables basic): osresult objects falsely compare unequal!");
3947 intArray[0] = intArray[0] + 10;
3948 intArray[1] = intArray[1] + 10;
3949 intArray[2] = intArray[2] + 10;
3954 throw ErrorClass(
"Error during setBasisStatus (variables atLower)!");
3955 ok &= (!osresult1->IsEqual(osresult2));
3957 throw ErrorClass(
"setBasisStatus (variables atLower): osresult objects falsely compare equal!");
3960 throw ErrorClass(
"Error during setBasisStatus (variables atLower)!");
3961 ok &= (osresult1->IsEqual(osresult2));
3963 throw ErrorClass(
"setBasisStatus (variables atLower): osresult objects falsely compare unequal!");
3964 intArray[0] = intArray[0] + 10;
3965 intArray[1] = intArray[1] + 10;
3967 intArray[2] = intArray[2] + 10;
3972 throw ErrorClass(
"Error during setBasisStatus (variables atUpper)!");
3973 ok &= (!osresult1->IsEqual(osresult2));
3975 throw ErrorClass(
"setBasisStatus (variables atUpper): osresult objects falsely compare equal!");
3978 throw ErrorClass(
"Error during setBasisStatus (variables atUpper)!");
3979 ok &= (osresult1->IsEqual(osresult2));
3981 throw ErrorClass(
"setBasisStatus (variables atUpper): osresult objects falsely compare unequal!");
3982 intArray[0] = intArray[0] + 10;
3983 intArray[1] = intArray[1] + 10;
3985 intArray[2] = intArray[2] + 10;
3990 throw ErrorClass(
"Error during setBasisStatus (variables atEquality)!");
3991 ok &= (!osresult1->IsEqual(osresult2));
3993 throw ErrorClass(
"setBasisStatus (variables atEquality): osresult objects falsely compare equal!");
3996 throw ErrorClass(
"Error during setBasisStatus (variables atEquality)!");
3997 ok &= (osresult1->IsEqual(osresult2));
3999 throw ErrorClass(
"setBasisStatus (variables atEquality): osresult objects falsely compare unequal!");
4001 intArray[0] = intArray[0] + 10;
4002 intArray[1] = intArray[1] + 10;
4003 intArray[2] = intArray[2] + 10;
4007 throw ErrorClass(
"Error during setBasisStatus (variables isFree)!");
4008 ok &= (!osresult1->IsEqual(osresult2));
4010 throw ErrorClass(
"setBasisStatus (variables isFree): osresult objects falsely compare equal!");
4013 throw ErrorClass(
"Error during setBasisStatus (variables isFree)!");
4014 ok &= (osresult1->IsEqual(osresult2));
4016 throw ErrorClass(
"setBasisStatus (variables isFree): osresult objects falsely compare unequal!");
4018 intArray[0] = intArray[0] + 10;
4019 intArray[1] = intArray[1] + 10;
4020 intArray[2] = intArray[2] + 10;
4024 throw ErrorClass(
"Error during setBasisStatus (variables superbasic)!");
4025 ok &= (!osresult1->IsEqual(osresult2));
4027 throw ErrorClass(
"setBasisStatus (variables superbasic): osresult objects falsely compare equal!");
4030 throw ErrorClass(
"Error during setBasisStatus (variables superbasic)!");
4031 ok &= (osresult1->IsEqual(osresult2));
4033 throw ErrorClass(
"setBasisStatus (variables superbasic): osresult objects falsely compare unequal!");
4035 intArray[0] = intArray[0] + 10;
4036 intArray[1] = intArray[1] + 10;
4037 intArray[2] = intArray[2] + 10;
4041 throw ErrorClass(
"Error during setBasisStatus (variables unknown)!");
4042 ok &= (!osresult1->IsEqual(osresult2));
4044 throw ErrorClass(
"setBasisStatus (variables unknown): osresult objects falsely compare equal!");
4047 throw ErrorClass(
"Error during setBasisStatus (variables unknown)!");
4048 ok &= (osresult1->IsEqual(osresult2));
4050 throw ErrorClass(
"setBasisStatus (variables unknown): osresult objects falsely compare unequal!");
4052 ok &= osresult1->setNumberOfOtherVariableResults(i,3);
4054 throw ErrorClass(
"Error during setNumberOfOtherVariableResults!");
4055 ok &= (!osresult1->IsEqual(osresult2));
4057 throw ErrorClass(
"setNumberOfOtherVariableResults: osresult objects falsely compare equal!");
4058 ok &= osresult2->setNumberOfOtherVariableResults(i,3);
4060 throw ErrorClass(
"Error during setNumberOfOtherVariableResults!");
4061 ok &= (osresult1->IsEqual(osresult2));
4063 throw ErrorClass(
"setNumberOfOtherVariableResults: osresult objects falsely compare unequal!");
4065 for (
int j=0; j < 2; ++j)
4067 ok &= osresult1->setOtherVariableResultName(i,j,
"other");
4069 throw ErrorClass(
"Error during setOtherVariableResultName!");
4070 ok &= (!osresult1->IsEqual(osresult2));
4072 throw ErrorClass(
"setOtherVariableResultName: osresult objects falsely compare equal!");
4073 ok &= osresult2->setOtherVariableResultName(i,j,
"other");
4075 throw ErrorClass(
"Error during setOtherVariableResultName!");
4076 ok &= (osresult1->IsEqual(osresult2));
4078 throw ErrorClass(
"setOtherVariableResultName: osresult objects falsely compare unequal!");
4080 ok &= osresult1->setOtherVariableResultDescription(i,j,
"other");
4082 throw ErrorClass(
"Error during setOtherVariableResultDescription!");
4083 ok &= (!osresult1->IsEqual(osresult2));
4085 throw ErrorClass(
"setOtherVariableResultDescription: osresult objects falsely compare equal!");
4086 ok &= osresult2->setOtherVariableResultDescription(i,j,
"other");
4088 throw ErrorClass(
"Error during setOtherVariableResultDescription!");
4089 ok &= (osresult1->IsEqual(osresult2));
4091 throw ErrorClass(
"setOtherVariableResultDescription: osresult objects falsely compare unequal!");
4093 ok &= osresult1->setOtherVariableResultValue(i,j,
"other");
4095 throw ErrorClass(
"Error during setOtherVariableResultValue!");
4096 ok &= (!osresult1->IsEqual(osresult2));
4098 throw ErrorClass(
"setOtherVariableResultValue: osresult objects falsely compare equal!");
4099 ok &= osresult2->setOtherVariableResultValue(i,j,
"other");
4101 throw ErrorClass(
"Error during setOtherVariableResultValue!");
4102 ok &= (osresult1->IsEqual(osresult2));
4104 throw ErrorClass(
"setOtherVariableResultValue: osresult objects falsely compare unequal!");
4106 ok &= osresult1->setOtherVariableResultNumberOfVar(i,j,3);
4108 throw ErrorClass(
"Error during setOtherVariableResultNumberOfVar!");
4109 ok &= (!osresult1->IsEqual(osresult2));
4111 throw ErrorClass(
"setOtherVariableResultNumberOfVar: osresult objects falsely compare equal!");
4112 ok &= osresult2->setOtherVariableResultNumberOfVar(i,j,3);
4114 throw ErrorClass(
"Error during setOtherVariableResultNumberOfVar!");
4115 ok &= (osresult1->IsEqual(osresult2));
4117 throw ErrorClass(
"setOtherVariableResultNumberOfVar: osresult objects falsely compare unequal!");
4119 for (
int k=0; k < 3; ++k)
4121 ok &= osresult1->setOtherVariableResultVarIdx(i,j,k,k);
4123 throw ErrorClass(
"Error during setOtherVariableResultVarIdx!");
4124 ok &= (!osresult1->IsEqual(osresult2));
4126 throw ErrorClass(
"setOtherVariableResultVarIdx: osresult objects falsely compare equal!");
4127 ok &= osresult2->setOtherVariableResultVarIdx(i,j,k,k);
4129 throw ErrorClass(
"Error during setOtherVariableResultVarIdx!");
4130 ok &= (osresult1->IsEqual(osresult2));
4132 throw ErrorClass(
"setOtherVariableResultVarIdx: osresult objects falsely compare unequal!");
4134 ok &= osresult1->setOtherVariableResultVar(i,j,k,
"value");
4136 throw ErrorClass(
"Error during setOtherVariableResultVar!");
4137 ok &= (!osresult1->IsEqual(osresult2));
4139 throw ErrorClass(
"setOtherVariableResultVar: osresult objects falsely compare equal!");
4140 ok &= osresult2->setOtherVariableResultVar(i,j,k,
"value");
4142 throw ErrorClass(
"Error during setOtherVariableResultVar!");
4143 ok &= (osresult1->IsEqual(osresult2));
4145 throw ErrorClass(
"setOtherVariableResultVar: osresult objects falsely compare unequal!");
4151 ok &= osresult1->setOtherVariableResultName(i,2,
"other");
4153 throw ErrorClass(
"Error during setOtherVariableResultName!");
4154 ok &= (!osresult1->IsEqual(osresult2));
4156 throw ErrorClass(
"setOtherVariableResultName: osresult objects falsely compare equal!");
4157 ok &= osresult2->setOtherVariableResultName(i,2,
"other");
4159 throw ErrorClass(
"Error during setOtherVariableResultName!");
4161 ok &= (osresult1->IsEqual(osresult2));
4163 throw ErrorClass(
"setOtherVariableResultName: osresult objects falsely compare unequal!");
4165 ok &= osresult1->setOtherVariableResultDescription(i,2,
"other");
4167 throw ErrorClass(
"Error during setOtherVariableResultDescription!");
4168 ok &= (!osresult1->IsEqual(osresult2));
4170 throw ErrorClass(
"setOtherVariableResultDescription: osresult objects falsely compare equal!");
4171 ok &= osresult2->setOtherVariableResultDescription(i,2,
"other");
4173 throw ErrorClass(
"Error during setOtherVariableResultDescription!");
4174 ok &= (osresult1->IsEqual(osresult2));
4176 throw ErrorClass(
"setOtherVariableResultDescription: osresult objects falsely compare unequal!");
4178 ok &= osresult1->setOtherVariableResultValue(i,2,
"other");
4180 throw ErrorClass(
"Error during setOtherVariableResultValue!");
4181 ok &= (!osresult1->IsEqual(osresult2));
4183 throw ErrorClass(
"setOtherVariableResultValue: osresult objects falsely compare equal!");
4184 ok &= osresult2->setOtherVariableResultValue(i,2,
"other");
4186 throw ErrorClass(
"Error during setOtherVariableResultValue!");
4187 ok &= (osresult1->IsEqual(osresult2));
4189 throw ErrorClass(
"setOtherVariableResultValue: osresult objects falsely compare unequal!");
4192 ok &= osresult1->setOtherVariableResultNumberOfEnumerations(i,2,2);
4194 throw ErrorClass(
"Error during setOtherVariableResultNumberOfEnumerations!");
4195 ok &= (!osresult1->IsEqual(osresult2));
4197 throw ErrorClass(
"setOtherVariableResultNumberOfEnumerations: osresult objects falsely compare equal!");
4198 ok &= osresult2->setOtherVariableResultNumberOfEnumerations(i,2,2);
4200 throw ErrorClass(
"Error during setOtherVariableResultNumberOfEnumerations!");
4201 ok &= (osresult1->IsEqual(osresult2));
4203 throw ErrorClass(
"setOtherVariableResultNumberOfEnumerations: osresult objects falsely compare unequal!");
4205 for (
int k=0; k < 2; ++k)
4207 intArray[0] = 1000*i + 1130 + 10*k + 1;
4208 intArray[1] = 1000*i + 1130 + 10*k + 2;
4209 intArray[2] = 1000*i + 1130 + 10*k + 3;
4212 ok &= osresult1->setOtherOptionOrResultEnumeration(i,2,
4215 throw ErrorClass(
"Error during setOtherOptionOrResultEnumeration!");
4216 ok &= (!osresult1->IsEqual(osresult2));
4218 throw ErrorClass(
"setOtherOptionOrResultEnumeration: osresult objects falsely compare equal!");
4219 ok &= osresult2->setOtherOptionOrResultEnumeration(i,2,
4222 throw ErrorClass(
"Error during setOtherOptionOrResultEnumeration!");
4223 ok &= (osresult1->IsEqual(osresult2));
4225 throw ErrorClass(
"setOtherOptionOrResultEnumeration: osresult objects falsely compare unequal!");
4229 ok &= osresult1->setNumberOfObjValues(i,2);
4231 throw ErrorClass(
"Error during setNumberOfObjValues!");
4232 ok &= (!osresult1->IsEqual(osresult2));
4234 throw ErrorClass(
"setNumberOfObjValues: osresult objects falsely compare equal!");
4235 ok &= osresult2->setNumberOfObjValues(i,2);
4237 throw ErrorClass(
"Error during setNumberOfObjValues!");
4238 ok &= (osresult1->IsEqual(osresult2));
4240 throw ErrorClass(
"setNumberOfObjValues: osresult objects falsely compare unequal!");
4242 for (
int j=0; j < 2; ++j)
4244 ok &= osresult1->setObjValue(i,j,-2,
"objname",3.14);
4246 throw ErrorClass(
"Error during setObjValue!");
4247 ok &= (!osresult1->IsEqual(osresult2));
4249 throw ErrorClass(
"setObjValue: osresult objects falsely compare equal!");
4250 ok &= osresult2->setObjValue(i,j,-2,
"objname",3.14);
4252 throw ErrorClass(
"Error during setObjValue!");
4253 ok &= (osresult1->IsEqual(osresult2));
4255 throw ErrorClass(
"setObjValue: osresult objects falsely compare unequal!");
4257 intArray[0] = -1000*i - 1200 - 10 - 1;
4258 intArray[1] = -1000*i - 1200 - 10 - 2;
4259 intArray[2] = -1000*i - 1200 - 10 - 3;
4263 throw ErrorClass(
"Error during setBasisStatus (objectives basic)!");
4264 ok &= (!osresult1->IsEqual(osresult2));
4266 throw ErrorClass(
"setBasisStatus (objectives basic): osresult objects falsely compare equal!");
4269 throw ErrorClass(
"Error during setBasisStatus (objectives basic)!");
4270 ok &= (osresult1->IsEqual(osresult2));
4272 throw ErrorClass(
"setBasisStatus (objectives basic): osresult objects falsely compare unequal!");
4274 intArray[0] = intArray[0] - 10;
4275 intArray[1] = intArray[1] - 10;
4276 intArray[2] = intArray[2] - 10;
4280 throw ErrorClass(
"Error during setBasisStatus (objectives atLower)!");
4281 ok &= (!osresult1->IsEqual(osresult2));
4283 throw ErrorClass(
"setBasisStatus (objectives atLower): osresult objects falsely compare equal!");
4286 throw ErrorClass(
"Error during setBasisStatus (objectives atLower)!");
4287 ok &= (osresult1->IsEqual(osresult2));
4289 throw ErrorClass(
"setBasisStatus (objectives atLower): osresult objects falsely compare unequal!");
4291 intArray[0] = intArray[0] - 10;
4292 intArray[1] = intArray[1] - 10;
4293 intArray[2] = intArray[2] - 10;
4298 throw ErrorClass(
"Error during setBasisStatus (objectives atUpper)!");
4299 ok &= (!osresult1->IsEqual(osresult2));
4301 throw ErrorClass(
"setBasisStatus (objectives atUpper): osresult objects falsely compare equal!");
4304 throw ErrorClass(
"Error during setBasisStatus (objectives atUpper)!");
4305 ok &= (osresult1->IsEqual(osresult2));
4307 throw ErrorClass(
"setBasisStatus (objectives atUpper): osresult objects falsely compare unequal!");
4309 intArray[0] = intArray[0] - 10;
4310 intArray[1] = intArray[1] - 10;
4311 intArray[2] = intArray[2] - 10;
4316 throw ErrorClass(
"Error during setBasisStatus (objectives atEquality)!");
4317 ok &= (!osresult1->IsEqual(osresult2));
4319 throw ErrorClass(
"setBasisStatus (objectives atEquality): osresult objects falsely compare equal!");
4322 throw ErrorClass(
"Error during setBasisStatus (objectives atEquality)!");
4323 ok &= (osresult1->IsEqual(osresult2));
4325 throw ErrorClass(
"setBasisStatus (objectives atEquality): osresult objects falsely compare unequal!");
4328 intArray[0] = intArray[0] - 10;
4329 intArray[1] = intArray[1] - 10;
4330 intArray[2] = intArray[2] - 10;
4334 throw ErrorClass(
"Error during setBasisStatus (objectives isFree)!");
4335 ok &= (!osresult1->IsEqual(osresult2));
4337 throw ErrorClass(
"setBasisStatus (objectives isFree): osresult objects falsely compare equal!");
4340 throw ErrorClass(
"Error during setBasisStatus (objectives isFree)!");
4341 ok &= (osresult1->IsEqual(osresult2));
4343 throw ErrorClass(
"setBasisStatus (objectives isFree): osresult objects falsely compare unequal!");
4346 intArray[0] = intArray[0] - 10;
4347 intArray[1] = intArray[1] - 10;
4348 intArray[2] = intArray[2] - 10;
4352 throw ErrorClass(
"Error during setBasisStatus (objectives superbasic)!");
4353 ok &= (!osresult1->IsEqual(osresult2));
4355 throw ErrorClass(
"setBasisStatus (objectives superbasic): osresult objects falsely compare equal!");
4358 throw ErrorClass(
"Error during setBasisStatus (objectives superbasic)!");
4360 ok &= (osresult1->IsEqual(osresult2));
4362 throw ErrorClass(
"setBasisStatus (objectives superbasic): osresult objects falsely compare unequal!");
4365 intArray[0] = intArray[0] - 10;
4366 intArray[1] = intArray[1] - 10;
4367 intArray[2] = intArray[2] - 10;
4371 throw ErrorClass(
"Error during setBasisStatus (objectives unknown)!");
4372 ok &= (!osresult1->IsEqual(osresult2));
4374 throw ErrorClass(
"setBasisStatus (objectives unknown): osresult objects falsely compare equal!");
4377 throw ErrorClass(
"Error during setBasisStatus (objectives unknown)!");
4378 ok &= (osresult1->IsEqual(osresult2));
4380 throw ErrorClass(
"setBasisStatus (objectives unknown): osresult objects falsely compare unequal!");
4382 ok &= osresult1->setNumberOfOtherObjectiveResults(i,3);
4384 throw ErrorClass(
"Error during setNumberOfOtherObjectiveResults!");
4385 ok &= (!osresult1->IsEqual(osresult2));
4387 throw ErrorClass(
"setNumberOfOtherObjectiveResults: osresult objects falsely compare equal!");
4388 ok &= osresult2->setNumberOfOtherObjectiveResults(i,3);
4390 throw ErrorClass(
"Error during setNumberOfOtherObjectiveResults!");
4391 ok &= (osresult1->IsEqual(osresult2));
4393 throw ErrorClass(
"setNumberOfOtherObjectiveResults: osresult objects falsely compare unequal!");
4395 for (
int j=0; j < 2; ++j)
4397 ok &= osresult1->setOtherObjectiveResultName(i,j,
"other");
4399 throw ErrorClass(
"Error during setOtherObjectiveResultName!");
4400 ok &= (!osresult1->IsEqual(osresult2));
4402 throw ErrorClass(
"setOtherObjectiveResultName: osresult objects falsely compare equal!");
4403 ok &= osresult2->setOtherObjectiveResultName(i,j,
"other");
4405 throw ErrorClass(
"Error during setOtherObjectiveResultName!");
4406 ok &= (osresult1->IsEqual(osresult2));
4408 throw ErrorClass(
"setOtherObjectiveResultName: osresult objects falsely compare unequal!");
4410 ok &= osresult1->setOtherObjectiveResultDescription(i,j,
"other");
4412 throw ErrorClass(
"Error during setOtherObjectiveResultDescription!");
4413 ok &= (!osresult1->IsEqual(osresult2));
4415 throw ErrorClass(
"setOtherObjectiveResultDescription: osresult objects falsely compare equal!");
4416 ok &= osresult2->setOtherObjectiveResultDescription(i,j,
"other");
4418 throw ErrorClass(
"Error during setOtherObjectiveResultDescription!");
4419 ok &= (osresult1->IsEqual(osresult2));
4421 throw ErrorClass(
"setOtherObjectiveResultDescription: osresult objects falsely compare unequal!");
4423 ok &= osresult1->setOtherObjectiveResultValue(i,j,
"other");
4425 throw ErrorClass(
"Error during setOtherObjectiveResultValue!");
4426 ok &= (!osresult1->IsEqual(osresult2));
4428 throw ErrorClass(
"setOtherObjectiveResultValue: osresult objects falsely compare equal!");
4429 ok &= osresult2->setOtherObjectiveResultValue(i,j,
"other");
4431 throw ErrorClass(
"Error during setOtherObjectiveResultValue!");
4432 ok &= (osresult1->IsEqual(osresult2));
4434 throw ErrorClass(
"setOtherObjectiveResultValue: osresult objects falsely compare unequal!");
4436 ok &= osresult1->setOtherObjectiveResultNumberOfObj(i,j,2);
4438 throw ErrorClass(
"Error during setOtherObjectiveResultNumberOfObj!");
4439 ok &= (!osresult1->IsEqual(osresult2));
4441 throw ErrorClass(
"setOtherObjectiveResultNumberOfObj: osresult objects falsely compare equal!");
4443 ok &= osresult2->setOtherObjectiveResultNumberOfObj(i,j,2);
4445 throw ErrorClass(
"Error during setOtherObjectiveResultNumberOfObj!");
4446 ok &= (osresult1->IsEqual(osresult2));
4448 throw ErrorClass(
"setOtherObjectiveResultNumberOfObj: osresult objects falsely compare unequal!");
4450 for (
int k=0; k < 2; ++k)
4452 ok &= osresult1->setOtherObjectiveResultObjIdx(i,j,k,-2);
4454 throw ErrorClass(
"Error during setOtherObjectiveResultObjIdx!");
4455 ok &= (!osresult1->IsEqual(osresult2));
4457 throw ErrorClass(
"setOtherObjectiveResultObjIdx: osresult objects falsely compare equal!");
4458 ok &= osresult2->setOtherObjectiveResultObjIdx(i,j,k,-2);
4460 throw ErrorClass(
"Error during setOtherObjectiveResultObjIdx!");
4461 ok &= (osresult1->IsEqual(osresult2));
4463 throw ErrorClass(
"setOtherObjectiveResultObjIdx: osresult objects falsely compare unequal!");
4465 ok &= osresult1->setOtherObjectiveResultObj(i,j,k,
"value");
4467 throw ErrorClass(
"Error during setOtherObjectiveResultObj!");
4468 ok &= (!osresult1->IsEqual(osresult2));
4470 throw ErrorClass(
"setOtherObjectiveResultObj: osresult objects falsely compare equal!");
4471 ok &= osresult2->setOtherObjectiveResultObj(i,j,k,
"value");
4473 throw ErrorClass(
"Error during setOtherObjectiveResultObj!");
4474 ok &= (osresult1->IsEqual(osresult2));
4476 throw ErrorClass(
"setOtherObjectiveResultObj: osresult objects falsely compare unequal!");
4481 ok &= osresult1->setOtherObjectiveResultName(i,2,
"other");
4483 throw ErrorClass(
"Error during setOtherObjectiveResultName!");
4484 ok &= (!osresult1->IsEqual(osresult2));
4486 throw ErrorClass(
"setOtherObjectiveResultName: osresult objects falsely compare equal!");
4487 ok &= osresult2->setOtherObjectiveResultName(i,2,
"other");
4489 throw ErrorClass(
"Error during setOtherObjectiveResultName!");
4490 ok &= (osresult1->IsEqual(osresult2));
4492 throw ErrorClass(
"setOtherObjectiveResultName: osresult objects falsely compare unequal!");
4494 ok &= osresult1->setOtherObjectiveResultDescription(i,2,
"other");
4496 throw ErrorClass(
"Error during setOtherObjectiveResultDescription!");
4497 ok &= (!osresult1->IsEqual(osresult2));
4499 throw ErrorClass(
"setOtherObjectiveResultDescription: osresult objects falsely compare equal!");
4500 ok &= osresult2->setOtherObjectiveResultDescription(i,2,
"other");
4502 throw ErrorClass(
"Error during setOtherObjectiveResultDescription!");
4503 ok &= (osresult1->IsEqual(osresult2));
4505 throw ErrorClass(
"setOtherObjectiveResultDescription: osresult objects falsely compare unequal!");
4507 ok &= osresult1->setOtherObjectiveResultValue(i,2,
"other");
4509 throw ErrorClass(
"Error during setOtherObjectiveResultValue!");
4510 ok &= (!osresult1->IsEqual(osresult2));
4512 throw ErrorClass(
"setOtherObjectiveResultValue: osresult objects falsely compare equal!");
4513 ok &= osresult2->setOtherObjectiveResultValue(i,2,
"other");
4515 throw ErrorClass(
"Error during setOtherObjectiveResultValue!");
4516 ok &= (osresult1->IsEqual(osresult2));
4518 throw ErrorClass(
"setOtherObjectiveResultValue: osresult objects falsely compare unequal!");
4520 ok &= osresult1->setOtherObjectiveResultNumberOfEnumerations(i,2,2);
4522 throw ErrorClass(
"Error during setOtherObjectiveResultNumberOfEnumerations!");
4523 ok &= (!osresult1->IsEqual(osresult2));
4525 throw ErrorClass(
"setOtherObjectiveResultNumberOfEnumerations: osresult objects falsely compare equal!");
4526 ok &= osresult2->setOtherObjectiveResultNumberOfEnumerations(i,2,2);
4528 throw ErrorClass(
"Error during setOtherObjectiveResultNumberOfEnumerations!");
4529 ok &= (osresult1->IsEqual(osresult2));
4531 throw ErrorClass(
"setOtherObjectiveResultNumberOfEnumerations: osresult objects falsely compare unequal!");
4533 for (
int k=0; k < 2; ++k)
4536 intArray[0] = -(1000*i + 1230 + 10*k + 1);
4537 intArray[1] = -(1000*i + 1230 + 10*k + 2);
4538 intArray[2] = -(1000*i + 1230 + 10*k + 3);
4540 ok &= osresult1->setOtherOptionOrResultEnumeration(i,2,
4543 throw ErrorClass(
"Error during setOtherOptionOrResultEnumeration (objective)!");
4544 ok &= (!osresult1->IsEqual(osresult2));
4546 throw ErrorClass(
"setOtherOptionOrResultEnumeration: osresult objects falsely compare equal!");
4547 ok &= osresult2->setOtherOptionOrResultEnumeration(i,2,
4550 throw ErrorClass(
"Error during setOtherOptionOrResultEnumeration (objective)!");
4551 ok &= (osresult1->IsEqual(osresult2));
4553 throw ErrorClass(
"setOtherOptionOrResultEnumeration: osresult objects falsely compare unequal!");
4557 ok &= osresult1->setNumberOfDualValues(i,3);
4559 throw ErrorClass(
"Error during setNumberOfDualValues!");
4560 ok &= (!osresult1->IsEqual(osresult2));
4562 throw ErrorClass(
"setNumberOfDualValues: osresult objects falsely compare equal!");
4563 ok &= osresult2->setNumberOfDualValues(i,3);
4565 throw ErrorClass(
"Error during setNumberOfDualValues!");
4566 ok &= (osresult1->IsEqual(osresult2));
4568 throw ErrorClass(
"setNumberOfDualValues: osresult objects falsely compare unequal!");
4570 for (
int j=0; j < 3; ++j)
4572 ok &= osresult1->setDualValue(i,j,j,
"conname",3.14);
4574 throw ErrorClass(
"Error during setDualValue!");
4575 ok &= (!osresult1->IsEqual(osresult2));
4577 throw ErrorClass(
"setDualValue: osresult objects falsely compare equal!");
4578 ok &= osresult2->setDualValue(i,j,j,
"conname",3.14);
4580 throw ErrorClass(
"Error during setDualValue!");
4581 ok &= (osresult1->IsEqual(osresult2));
4583 throw ErrorClass(
"setDualValue: osresult objects falsely compare unequal!");
4586 intArray[0] = 1000*i + 1300 + 10 + 1;
4587 intArray[1] = 1000*i + 1300 + 10 + 2;
4588 intArray[2] = 1000*i + 1300 + 10 + 3;
4592 throw ErrorClass(
"Error during setBasisStatus (constraints basic)!");
4593 ok &= (!osresult1->IsEqual(osresult2));
4595 throw ErrorClass(
"setBasisStatus (constraints basic): osresult objects falsely compare equal!");
4598 throw ErrorClass(
"Error during setBasisStatus (constraints basic)!");
4599 ok &= (osresult1->IsEqual(osresult2));
4601 throw ErrorClass(
"setBasisStatus (constraints basic): osresult objects falsely compare unequal!");
4603 intArray[0] = intArray[0] + 10;
4604 intArray[1] = intArray[1] + 10;
4605 intArray[2] = intArray[2] + 10;
4609 throw ErrorClass(
"Error during setBasisStatus (constraints atLower)!");
4610 ok &= (!osresult1->IsEqual(osresult2));
4612 throw ErrorClass(
"setBasisStatus (constraints atLower): osresult objects falsely compare equal!");
4615 throw ErrorClass(
"Error during setBasisStatus (constraints atLower)!");
4616 ok &= (osresult1->IsEqual(osresult2));
4618 throw ErrorClass(
"setBasisStatus (constraints atLower): osresult objects falsely compare unequal!");
4620 intArray[0] = intArray[0] + 10;
4621 intArray[1] = intArray[1] + 10;
4622 intArray[2] = intArray[2] + 10;
4627 throw ErrorClass(
"Error during setBasisStatus (constraints atUpper)!");
4628 ok &= (!osresult1->IsEqual(osresult2));
4630 throw ErrorClass(
"setBasisStatus (constraints atUpper): osresult objects falsely compare equal!");
4633 throw ErrorClass(
"Error during setBasisStatus (constraints atUpper)!");
4634 ok &= (osresult1->IsEqual(osresult2));
4636 throw ErrorClass(
"setBasisStatus (constraints atUpper): osresult objects falsely compare unequal!");
4638 intArray[0] = intArray[0] + 10;
4639 intArray[1] = intArray[1] + 10;
4640 intArray[2] = intArray[2] + 10;
4645 throw ErrorClass(
"Error during setBasisStatus (constraints atEquality)!");
4646 ok &= (!osresult1->IsEqual(osresult2));
4648 throw ErrorClass(
"setBasisStatus (constraints atEquality): osresult objects falsely compare equal!");
4651 throw ErrorClass(
"Error during setBasisStatus (constraints atEquality)!");
4652 ok &= (osresult1->IsEqual(osresult2));
4654 throw ErrorClass(
"setBasisStatus (constraints atEquality): osresult objects falsely compare unequal!");
4657 intArray[0] = intArray[0] + 10;
4658 intArray[1] = intArray[1] + 10;
4659 intArray[2] = intArray[2] + 10;
4663 throw ErrorClass(
"Error during setBasisStatus (constraints isFree)!");
4664 ok &= (!osresult1->IsEqual(osresult2));
4666 throw ErrorClass(
"setBasisStatus (constraints isFree): osresult objects falsely compare equal!");
4669 throw ErrorClass(
"Error during setBasisStatus (constraints isFree)!");
4670 ok &= (osresult1->IsEqual(osresult2));
4672 throw ErrorClass(
"setBasisStatus (constraints isFree): osresult objects falsely compare unequal!");
4675 intArray[0] = intArray[0] + 10;
4676 intArray[1] = intArray[1] + 10;
4677 intArray[2] = intArray[2] + 10;
4681 throw ErrorClass(
"Error during setBasisStatus (constraints superbasic)!");
4682 ok &= (!osresult1->IsEqual(osresult2));
4684 throw ErrorClass(
"setBasisStatus (constraints superbasic): osresult objects falsely compare equal!");
4687 throw ErrorClass(
"Error during setBasisStatus (constraints superbasic)!");
4688 ok &= (osresult1->IsEqual(osresult2));
4690 throw ErrorClass(
"setBasisStatus (constraints superbasic): osresult objects falsely compare unequal!");
4692 intArray[0] = intArray[0] + 10;
4693 intArray[1] = intArray[1] + 10;
4694 intArray[2] = intArray[2] + 10;
4699 throw ErrorClass(
"Error during setBasisStatus (constraints unknown)!");
4700 ok &= (!osresult1->IsEqual(osresult2));
4702 throw ErrorClass(
"setBasisStatus (constraints unknown): osresult objects falsely compare equal!");
4705 throw ErrorClass(
"Error during setBasisStatus (constraints unknown)!");
4706 ok &= (osresult1->IsEqual(osresult2));
4708 throw ErrorClass(
"setBasisStatus (constraints unknown): osresult objects falsely compare unequal!");
4710 ok &= osresult1->setNumberOfOtherConstraintResults(i,3);
4712 throw ErrorClass(
"Error during setNumberOfOtherConstraintResults!");
4713 ok &= (!osresult1->IsEqual(osresult2));
4715 throw ErrorClass(
"setNumberOfOtherConstraintResults: osresult objects falsely compare equal!");
4716 ok &= osresult2->setNumberOfOtherConstraintResults(i,3);
4718 throw ErrorClass(
"Error during setNumberOfOtherConstraintResults!");
4719 ok &= (osresult1->IsEqual(osresult2));
4721 throw ErrorClass(
"setNumberOfOtherConstraintResults: osresult objects falsely compare unequal!");
4723 for (
int j=0; j < 2; ++j)
4725 ok &= osresult1->setOtherConstraintResultName(i,j,
"other");
4727 throw ErrorClass(
"Error during setOtherConstraintResultName!");
4728 ok &= (!osresult1->IsEqual(osresult2));
4730 throw ErrorClass(
"setOtherConstraintResultName: osresult objects falsely compare equal!");
4731 ok &= osresult2->setOtherConstraintResultName(i,j,
"other");
4733 throw ErrorClass(
"Error during setOtherConstraintResultName!");
4734 ok &= (osresult1->IsEqual(osresult2));
4736 throw ErrorClass(
"setOtherConstraintResultName: osresult objects falsely compare unequal!");
4738 ok &= osresult1->setOtherConstraintResultDescription(i,j,
"other");
4740 throw ErrorClass(
"Error during setOtherConstraintResultDescription!");
4741 ok &= (!osresult1->IsEqual(osresult2));
4743 throw ErrorClass(
"setOtherConstraintResultDescription: osresult objects falsely compare equal!");
4744 ok &= osresult2->setOtherConstraintResultDescription(i,j,
"other");
4746 throw ErrorClass(
"Error during setOtherConstraintResultDescription!");
4747 ok &= (osresult1->IsEqual(osresult2));
4749 throw ErrorClass(
"setOtherConstraintResultDescription: osresult objects falsely compare unequal!");
4751 ok &= osresult1->setOtherConstraintResultValue(i,j,
"other");
4753 throw ErrorClass(
"Error during setOtherConstraintResultValue!");
4754 ok &= (!osresult1->IsEqual(osresult2));
4756 throw ErrorClass(
"setOtherConstraintResultValue: osresult objects falsely compare equal!");
4757 ok &= osresult2->setOtherConstraintResultValue(i,j,
"other");
4759 throw ErrorClass(
"Error during setOtherConstraintResultValue!");
4760 ok &= (osresult1->IsEqual(osresult2));
4762 throw ErrorClass(
"setOtherConstraintResultValue: osresult objects falsely compare unequal!");
4764 ok &= osresult1->setOtherConstraintResultNumberOfCon(i,j,3);
4766 throw ErrorClass(
"Error during setOtherConstraintResultNumberOfCon!");
4767 ok &= (!osresult1->IsEqual(osresult2));
4769 throw ErrorClass(
"setOtherConstraintResultNumberOfCon: osresult objects falsely compare equal!");
4770 ok &= osresult2->setOtherConstraintResultNumberOfCon(i,j,3);
4772 throw ErrorClass(
"Error during setOtherConstraintResultNumberOfCon!");
4773 ok &= (osresult1->IsEqual(osresult2));
4775 throw ErrorClass(
"setOtherConstraintResultNumberOfCon: osresult objects falsely compare unequal!");
4777 for (
int k=0; k < 3; ++k)
4779 ok &= osresult1->setOtherConstraintResultConIdx(i,j,k,k);
4781 throw ErrorClass(
"Error during setOtherConstraintResultConIdx!");
4782 ok &= (!osresult1->IsEqual(osresult2));
4784 throw ErrorClass(
"setOtherConstraintResultConIdx: osresult objects falsely compare equal!");
4785 ok &= osresult2->setOtherConstraintResultConIdx(i,j,k,k);
4787 throw ErrorClass(
"Error during setOtherConstraintResultConIdx!");
4788 ok &= (osresult1->IsEqual(osresult2));
4790 throw ErrorClass(
"setOtherConstraintResultConIdx: osresult objects falsely compare unequal!");
4792 ok &= osresult1->setOtherConstraintResultCon(i,j,k,
"value");
4794 throw ErrorClass(
"Error during setOtherConstraintResultCon!");
4795 ok &= (!osresult1->IsEqual(osresult2));
4797 throw ErrorClass(
"setOtherConstraintResultCon: osresult objects falsely compare equal!");
4798 ok &= osresult2->setOtherConstraintResultCon(i,j,k,
"value");
4800 throw ErrorClass(
"Error during setOtherConstraintResultCon!");
4801 ok &= (osresult1->IsEqual(osresult2));
4803 throw ErrorClass(
"setOtherConstraintResultCon: osresult objects falsely compare unequal!");
4810 ok &= osresult1->setOtherConstraintResultName(i,2,
"other");
4812 throw ErrorClass(
"Error during setOtherConstraintResultName!");
4813 ok &= (!osresult1->IsEqual(osresult2));
4815 throw ErrorClass(
"setOtherConstraintResultName: osresult objects falsely compare equal!");
4816 ok &= osresult2->setOtherConstraintResultName(i,2,
"other");
4818 throw ErrorClass(
"Error during setOtherConstraintResultName!");
4819 ok &= (osresult1->IsEqual(osresult2));
4821 throw ErrorClass(
"setOtherConstraintResultName: osresult objects falsely compare unequal!");
4823 ok &= osresult1->setOtherConstraintResultDescription(i,2,
"other");
4825 throw ErrorClass(
"Error during setOtherConstraintResultDescription!");
4826 ok &= (!osresult1->IsEqual(osresult2));
4828 throw ErrorClass(
"setOtherConstraintResultDescription: osresult objects falsely compare equal!");
4829 ok &= osresult2->setOtherConstraintResultDescription(i,2,
"other");
4831 throw ErrorClass(
"Error during setOtherConstraintResultDescription!");
4832 ok &= (osresult1->IsEqual(osresult2));
4834 throw ErrorClass(
"setOtherConstraintResultDescription: osresult objects falsely compare unequal!");
4836 ok &= osresult1->setOtherConstraintResultValue(i,2,
"other");
4838 throw ErrorClass(
"Error during setOtherConstraintResultValue!");
4839 ok &= (!osresult1->IsEqual(osresult2));
4841 throw ErrorClass(
"setOtherConstraintResultValue: osresult objects falsely compare equal!");
4842 ok &= osresult2->setOtherConstraintResultValue(i,2,
"other");
4844 throw ErrorClass(
"Error during setOtherConstraintResultValue!");
4845 ok &= (osresult1->IsEqual(osresult2));
4847 throw ErrorClass(
"setOtherConstraintResultValue: osresult objects falsely compare unequal!");
4849 ok &= osresult1->setOtherConstraintResultNumberOfEnumerations(i,2,2);
4851 throw ErrorClass(
"Error during setOtherConstraintResultNumberOfEnumerations!");
4852 ok &= (!osresult1->IsEqual(osresult2));
4854 throw ErrorClass(
"setOtherConstraintResultNumberOfEnumerations: osresult objects falsely compare equal!");
4855 ok &= osresult2->setOtherConstraintResultNumberOfEnumerations(i,2,2);
4857 throw ErrorClass(
"Error during setOtherConstraintResultNumberOfEnumerations!");
4858 ok &= (osresult1->IsEqual(osresult2));
4860 throw ErrorClass(
"setOtherConstraintResultNumberOfEnumerations: osresult objects falsely compare unequal!");
4862 for (
int k=0; k < 2; ++k)
4864 intArray[0] = 1000*i + 1330 + 10*k + 1;
4865 intArray[1] = 1000*i + 1330 + 10*k + 2;
4866 intArray[2] = 1000*i + 1330 + 10*k + 3;
4868 ok &= osresult1->setOtherOptionOrResultEnumeration(i,2,
4871 throw ErrorClass(
"Error during setOtherOptionOrResultEnumeration (constraint)!");
4872 ok &= (!osresult1->IsEqual(osresult2));
4874 throw ErrorClass(
"setOtherOptionOrResultEnumeration: osresult objects falsely compare equal!");
4875 ok &= osresult2->setOtherOptionOrResultEnumeration(i,2,
4878 throw ErrorClass(
"Error during setOtherOptionOrResultEnumeration (constraint)!");
4879 ok &= (osresult1->IsEqual(osresult2));
4881 throw ErrorClass(
"setOtherOptionOrResultEnumeration: osresult objects falsely compare unequal!");
4885 ok &= osresult1->setNumberOfOtherSolutionResults(i,3);
4887 throw ErrorClass(
"Error during setNumberOfOtherSolutionResults!");
4888 ok &= (!osresult1->IsEqual(osresult2));
4890 throw ErrorClass(
"setNumberOfOtherSolutionResults: osresult objects falsely compare equal!");
4891 ok &= osresult2->setNumberOfOtherSolutionResults(i,3);
4893 throw ErrorClass(
"Error during setNumberOfOtherSolutionResults!");
4894 ok &= (osresult1->IsEqual(osresult2));
4896 throw ErrorClass(
"setNumberOfOtherSolutionResults: osresult objects falsely compare unequal!");
4898 for (
int j=0; j < 3; ++j)
4900 ok &= osresult1->setOtherSolutionResultName(i,j,
"other");
4902 throw ErrorClass(
"Error during setOtherSolutionResultName!");
4903 ok &= (!osresult1->IsEqual(osresult2));
4905 throw ErrorClass(
"setOtherSolutionResultName: osresult objects falsely compare equal!");
4906 ok &= osresult2->setOtherSolutionResultName(i,j,
"other");
4908 throw ErrorClass(
"Error during setOtherSolutionResultName!");
4909 ok &= (osresult1->IsEqual(osresult2));
4911 throw ErrorClass(
"setOtherSolutionResultName: osresult objects falsely compare unequal!");
4913 ok &= osresult1->setOtherSolutionResultCategory(i,j,
"other");
4915 throw ErrorClass(
"Error during setOtherSolutionResultCategory!");
4916 ok &= (!osresult1->IsEqual(osresult2));
4918 throw ErrorClass(
"setOtherSolutionResultCategory: osresult objects falsely compare equal!");
4919 ok &= osresult2->setOtherSolutionResultCategory(i,j,
"other");
4921 throw ErrorClass(
"Error during setOtherSolutionResultCategory!");
4922 ok &= (osresult1->IsEqual(osresult2));
4924 throw ErrorClass(
"setOtherSolutionResultCategory: osresult objects falsely compare unequal!");
4926 ok &= osresult1->setOtherSolutionResultDescription(i,j,
"other");
4928 throw ErrorClass(
"Error during setOtherSolutionResultDescription!");
4929 ok &= (!osresult1->IsEqual(osresult2));
4931 throw ErrorClass(
"setOtherSolutionResultDescription: osresult objects falsely compare equal!");
4932 ok &= osresult2->setOtherSolutionResultDescription(i,j,
"other");
4934 throw ErrorClass(
"Error during setOtherSolutionResultDescription!");
4935 ok &= (osresult1->IsEqual(osresult2));
4937 throw ErrorClass(
"setOtherSolutionResultDescription: osresult objects falsely compare unequal!");
4939 ok &= osresult1->setOtherSolutionResultNumberOfItems(i,j,3);
4941 throw ErrorClass(
"Error during setOtherSolutionResultNumberOfItems!");
4942 ok &= (!osresult1->IsEqual(osresult2));
4944 throw ErrorClass(
"setOtherSolutionResultNumberOfItems: osresult objects falsely compare equal!");
4945 ok &= osresult2->setOtherSolutionResultNumberOfItems(i,j,3);
4947 throw ErrorClass(
"Error during setOtherSolutionResultNumberOfItems!");
4948 ok &= (osresult1->IsEqual(osresult2));
4950 throw ErrorClass(
"setOtherSolutionResultNumberOfItems: osresult objects falsely compare unequal!");
4952 for (
int k=0; k < 3; ++k)
4954 ok &= osresult1->setOtherSolutionResultItem(i,j,k,
"blabla");
4956 throw ErrorClass(
"Error during setOtherSolutionResultItem!");
4957 ok &= (!osresult1->IsEqual(osresult2));
4959 throw ErrorClass(
"setOtherSolutionResultItem: osresult objects falsely compare equal!");
4960 ok &= osresult2->setOtherSolutionResultItem(i,j,k,
"blabla");
4962 throw ErrorClass(
"Error during setOtherSolutionResultItem!");
4963 ok &= (osresult1->IsEqual(osresult2));
4965 throw ErrorClass(
"setOtherSolutionResultItem: osresult objects falsely compare unequal!");
4970 ok &= osresult1->setNumberOfSolverOutputs(3);
4972 throw ErrorClass(
"Error during setNumberOfSolverOutputs!");
4973 ok &= (!osresult1->IsEqual(osresult2));
4975 throw ErrorClass(
"setNumberOfSolverOutputs: osresult objects falsely compare equal!");
4976 ok &= osresult2->setNumberOfSolverOutputs(3);
4978 throw ErrorClass(
"Error during setNumberOfSolverOutputs!");
4979 ok &= (osresult1->IsEqual(osresult2));
4981 throw ErrorClass(
"setNumberOfSolverOutputs: osresult objects falsely compare unequal!");
4983 for (
int i=0; i < 3; ++i)
4985 ok &= osresult1->setSolverOutputName(i,
"some name");
4987 throw ErrorClass(
"Error during setSolverOutputName!");
4988 ok &= (!osresult1->IsEqual(osresult2));
4990 throw ErrorClass(
"setSolverOutputName: osresult objects falsely compare equal!");
4991 ok &= osresult2->setSolverOutputName(i,
"some name");
4993 throw ErrorClass(
"Error during setSolverOutputName!");
4994 ok &= (osresult1->IsEqual(osresult2));
4996 throw ErrorClass(
"setSolverOutputName: osresult objects falsely compare unequal!");
4998 ok &= osresult1->setSolverOutputCategory(i,
"some name");
5000 throw ErrorClass(
"Error during setSolverOutputCategory!");
5001 ok &= (!osresult1->IsEqual(osresult2));
5003 throw ErrorClass(
"setSolverOutputCategory: osresult objects falsely compare equal!");
5004 ok &= osresult2->setSolverOutputCategory(i,
"some name");
5006 throw ErrorClass(
"Error during setSolverOutputCategory!");
5007 ok &= (osresult1->IsEqual(osresult2));
5009 throw ErrorClass(
"setSolverOutputCategory: osresult objects falsely compare unequal!");
5011 ok &= osresult1->setSolverOutputDescription(i,
"some name");
5013 throw ErrorClass(
"Error during setSolverOutputDescription!");
5014 ok &= (!osresult1->IsEqual(osresult2));
5016 throw ErrorClass(
"setSolverOutputDescription: osresult objects falsely compare equal!");
5017 ok &= osresult2->setSolverOutputDescription(i,
"some name");
5019 throw ErrorClass(
"Error during setSolverOutputDescription!");
5020 ok &= (osresult1->IsEqual(osresult2));
5022 throw ErrorClass(
"setSolverOutputDescription: osresult objects falsely compare unequal!");
5024 ok &= osresult1->setSolverOutputNumberOfItems(i,3);
5026 throw ErrorClass(
"Error during setSolverOutputNumberOfItems!");
5027 ok &= (!osresult1->IsEqual(osresult2));
5029 throw ErrorClass(
"setSolverOutputNumberOfItems: osresult objects falsely compare equal!");
5030 ok &= osresult2->setSolverOutputNumberOfItems(i,3);
5032 throw ErrorClass(
"Error during setSolverOutputNumberOfItems!");
5033 ok &= (osresult1->IsEqual(osresult2));
5035 throw ErrorClass(
"setSolverOutputNumberOfItems: osresult objects falsely compare unequal!");
5037 for (
int j=0; j < 3; ++j)
5039 ok &= osresult1->setSolverOutputItem(i,j,
"other");
5041 throw ErrorClass(
"Error during setSolverOutputItem!");
5042 ok &= (!osresult1->IsEqual(osresult2));
5044 throw ErrorClass(
"setSolverOutputItem: osresult objects falsely compare equal!");
5045 ok &= osresult2->setSolverOutputItem(i,j,
"other");
5047 throw ErrorClass(
"Error during setSolverOutputItem!");
5048 ok &= (osresult1->IsEqual(osresult2));
5050 throw ErrorClass(
"setSolverOutputItem: osresult objects falsely compare unequal!");
5055 throw ErrorClass(
"Unspecified error while testing set() methods");
5057 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSrL set() tools" << std::endl;
5058 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
5060 cout << endl <<
"TEST " << ++nOfTest <<
": OSrLWriter and OSrLReader " << endl << endl;
5065 std::string tempOSrL;
5067 cout <<
"write out the OSResult object from previous test" << endl;
5069 tempOSrL = osrlwriter->
writeOSrL( osresult1);
5071 cout << tempOSrL << endl;
5073 cout <<
"Read the string back into memory" << endl;
5075 osresult3 = osrlreader->readOSrL( tempOSrL);
5077 cout <<
"write out the new object created" << endl;
5079 tempOSrL = osrlwriter->
writeOSrL( osresult3);
5081 std::cout <<
"Here is the temporary OSrL string produced from OSrLReader" << std::endl << tempOSrL << std::endl;
5083 cout <<
"verify that the old and new objects are equal" << endl;
5085 ok &= (osresult1->IsEqual(osresult3));
5087 throw ErrorClass(
"Writing an osresult then reading leads to loss of data");
5089 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSrLWriter and OSrLReader" << std::endl;
5090 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
5097 cout << endl <<
"TEST " << ++nOfTest <<
": OSrL get() methods" << endl << endl;
5100 if (osresult2 != NULL)
delete osresult2;
5103 std::string tempStr;
5107 tempStr = osresult1->getGeneralStatusType();
5108 ok &= osresult2->setGeneralStatusType(tempStr);
5110 throw ErrorClass(
"Error during setGeneralStatusType!");
5111 tempStr = osresult1->getGeneralStatusDescription();
5112 ok &= osresult2->setGeneralStatusDescription(tempStr);
5114 throw ErrorClass(
"Error during setGeneralStatusDescription!");
5116 tempInt = osresult1->getNumberOfGeneralSubstatuses();
5117 ok &= osresult2->setNumberOfGeneralSubstatuses(tempInt);
5119 throw ErrorClass(
"Error during setNumberOfGeneralSubstatuses!");
5120 for (
int i=0; i < tempInt; i++)
5122 tempStr = osresult1->getGeneralSubstatusName(i);
5123 ok &= osresult2->setGeneralSubstatusName(i,tempStr);
5125 throw ErrorClass(
"Error during setGeneralSubstatusName!");
5126 tempStr = osresult1->getGeneralSubstatusDescription(i);
5127 ok &= osresult2->setGeneralSubstatusDescription(i,tempStr);
5129 throw ErrorClass(
"Error during setGeneralSubstatusDescription!");
5132 tempStr = osresult1->getGeneralMessage();
5133 ok &= osresult2->setGeneralMessage(tempStr);
5135 throw ErrorClass(
"Error during setGeneralMessage!");
5136 tempStr = osresult1->getServiceURI();
5137 ok &= osresult2->setServiceURI(tempStr);
5139 throw ErrorClass(
"Error during setServiceURI!");
5140 tempStr = osresult1->getServiceName();
5141 ok &= osresult2->setServiceName(tempStr);
5143 throw ErrorClass(
"Error during setServiceName!");
5144 tempStr = osresult1->getInstanceName();
5145 ok &= osresult2->setInstanceName(tempStr);
5147 throw ErrorClass(
"Error during setInstanceName!");
5148 tempStr = osresult1->getJobID();
5149 ok &= osresult2->setJobID(tempStr);
5152 tempStr = osresult1->getSolverInvoked();
5153 ok &= osresult2->setSolverInvoked(tempStr);
5155 throw ErrorClass(
"Error during setSolverInvoked!");
5156 tempStr = osresult1->getTimeStamp();
5157 ok &= osresult2->setTimeStamp(tempStr);
5159 throw ErrorClass(
"Error during setTimeStamp!");
5161 tempInt = osresult1->getNumberOfOtherGeneralResults();
5162 ok &= osresult2->setNumberOfOtherGeneralResults(tempInt);
5164 throw ErrorClass(
"Error during setNumberOfOtherGeneralResults!");
5165 for (
int i=0; i < tempInt; i++)
5167 tempStr = osresult1->getOtherGeneralResultName(i);
5168 ok &= osresult2->setOtherGeneralResultName(i,tempStr);
5170 throw ErrorClass(
"Error during setOtherGeneralResultName!");
5171 tempStr = osresult1->getOtherGeneralResultValue(i);
5172 ok &= osresult2->setOtherGeneralResultValue(i,tempStr);
5174 throw ErrorClass(
"Error during setOtherGeneralResultValue!");
5175 tempStr = osresult1->getOtherGeneralResultDescription(i);
5176 ok &= osresult2->setOtherGeneralResultDescription(i,tempStr);
5178 throw ErrorClass(
"Error during setOtherGeneralResultDescription!");
5181 tempStr = osresult1->getSystemInformation();
5182 ok &= osresult2->setSystemInformation(tempStr);
5184 throw ErrorClass(
"Error during setSystemInformation!");
5185 tempStr = osresult1->getAvailableDiskSpaceUnit();
5186 ok &= osresult2->setAvailableDiskSpaceUnit(tempStr);
5188 throw ErrorClass(
"Error during setAvailableDiskSpaceUnit!");
5189 tempStr = osresult1->getAvailableDiskSpaceDescription();
5190 ok &= osresult2->setAvailableDiskSpaceDescription(tempStr);
5192 throw ErrorClass(
"Error during setAvailableDiskSpaceDescription!");
5193 tempDbl = osresult1->getAvailableDiskSpaceValue();
5194 ok &= osresult2->setAvailableDiskSpaceValue(tempDbl);
5196 throw ErrorClass(
"Error during setAvailableDiskSpaceValue!");
5197 tempStr = osresult1->getAvailableMemoryUnit();
5198 ok &= osresult2->setAvailableMemoryUnit(tempStr);
5200 throw ErrorClass(
"Error during setAvailableMemoryUnit!");
5201 tempStr = osresult1->getAvailableMemoryDescription();
5202 ok &= osresult2->setAvailableMemoryDescription(tempStr);
5204 throw ErrorClass(
"Error during setAvailableMemoryDescription!");
5205 tempDbl = osresult1->getAvailableMemoryValue();
5206 ok &= osresult2->setAvailableMemoryValue(tempDbl);
5208 throw ErrorClass(
"Error during setAvailableMemoryValue!");
5209 tempStr = osresult1->getAvailableCPUSpeedUnit();
5210 ok &= osresult2->setAvailableCPUSpeedUnit(tempStr);
5212 throw ErrorClass(
"Error during setAvailableCPUSpeedUnit!");
5213 tempStr = osresult1->getAvailableCPUSpeedDescription();
5214 ok &= osresult2->setAvailableCPUSpeedDescription(tempStr);
5216 throw ErrorClass(
"Error during setAvailableCPUSpeedDescription!");
5217 tempDbl = osresult1->getAvailableCPUSpeedValue();
5218 ok &= osresult2->setAvailableCPUSpeedValue(tempDbl);
5220 throw ErrorClass(
"Error during setAvailableCPUSpeedValue!");
5221 tempStr = osresult1->getAvailableCPUNumberDescription();
5222 ok &= osresult2->setAvailableCPUNumberDescription(tempStr);
5224 throw ErrorClass(
"Error during setAvailableCPUNumberDescription!");
5225 tempInt = osresult1->getAvailableCPUNumberValue();
5226 ok &= osresult2->setAvailableCPUNumberValue(tempInt);
5228 throw ErrorClass(
"Error during setAvailableCPUNumberValue!");
5230 tempInt = osresult1->getNumberOfOtherSystemResults();
5231 ok &= osresult2->setNumberOfOtherSystemResults(tempInt);
5233 throw ErrorClass(
"Error during setNumberOfOtherSystemResults!");
5234 for (
int i=0; i < tempInt; i++)
5236 tempStr = osresult1->getOtherSystemResultName(i);
5237 ok &= osresult2->setOtherSystemResultName(i,tempStr);
5239 throw ErrorClass(
"Error during setOtherSystemResultName!");
5240 tempStr = osresult1->getOtherSystemResultValue(i);
5241 ok &= osresult2->setOtherSystemResultValue(i,tempStr);
5243 throw ErrorClass(
"Error during setOtherSystemResultValue!");
5244 tempStr = osresult1->getOtherSystemResultDescription(i);
5245 ok &= osresult2->setOtherSystemResultDescription(i,tempStr);
5247 throw ErrorClass(
"Error during setOtherSystemResultDescription!");
5250 tempStr = osresult1->getCurrentState();
5251 ok &= osresult2->setCurrentState(tempStr);
5253 throw ErrorClass(
"Error during setCurrentState!");
5254 tempInt = osresult1->getCurrentJobCount();
5255 ok &= osresult2->setCurrentJobCount(tempInt);
5257 throw ErrorClass(
"Error during setCurrentJobCount!");
5258 tempInt = osresult1->getTotalJobsSoFar();
5259 ok &= osresult2->setTotalJobsSoFar(tempInt);
5261 throw ErrorClass(
"Error during setTotalJobsSoFar!");
5262 tempStr = osresult1->getTimeServiceStarted();
5263 ok &= osresult2->setTimeServiceStarted(tempStr);
5265 throw ErrorClass(
"Error during setTimeServiceStarted!");
5266 tempDbl = osresult1->getServiceUtilization();
5267 ok &= osresult2->setServiceUtilization(tempDbl);
5269 throw ErrorClass(
"Error during setServiceUtilization!");
5271 tempInt = osresult1->getNumberOfOtherServiceResults();
5272 ok &= osresult2->setNumberOfOtherServiceResults(tempInt);
5274 throw ErrorClass(
"Error during setNumberOfOtherServiceResults!");
5275 for (
int i=0; i < tempInt; i++)
5277 tempStr = osresult1->getOtherServiceResultName(i);
5278 ok &= osresult2->setOtherServiceResultName(i,tempStr);
5280 throw ErrorClass(
"Error during setOtherServiceResultName!");
5281 tempStr = osresult1->getOtherServiceResultValue(i);
5282 ok &= osresult2->setOtherServiceResultValue(i,tempStr);
5284 throw ErrorClass(
"Error during setOtherServiceResultValue!");
5285 tempStr = osresult1->getOtherServiceResultDescription(i);
5286 ok &= osresult2->setOtherServiceResultDescription(i,tempStr);
5288 throw ErrorClass(
"Error during setOtherServiceResultDescription!");
5291 tempStr = osresult1->getJobStatus();
5292 ok &= osresult2->setJobStatus(tempStr);
5294 throw ErrorClass(
"Error during setJobStatus!");
5295 tempStr = osresult1->getJobSubmitTime();
5296 ok &= osresult2->setJobSubmitTime(tempStr);
5298 throw ErrorClass(
"Error during setJobSubmitTime!");
5299 tempStr = osresult1->getScheduledStartTime();
5300 ok &= osresult2->setScheduledStartTime(tempStr);
5302 throw ErrorClass(
"Error during setScheduledStartTime!");
5303 tempStr = osresult1->getActualStartTime();
5304 ok &= osresult2->setActualStartTime(tempStr);
5306 throw ErrorClass(
"Error during setActualStartTime!");
5307 tempStr = osresult1->getJobEndTime();
5308 ok &= osresult2->setJobEndTime(tempStr);
5310 throw ErrorClass(
"Error during setJobEndTime!");
5312 tempInt = osresult1->getNumberOfTimes();
5313 ok &= osresult2->setNumberOfTimes(tempInt);
5315 throw ErrorClass(
"Error during setNumberOfTimes!");
5316 for (
int i=0; i < tempInt; i++)
5318 string tempStr1,tempStr2,tempStr3,tempStr4;
5319 tempStr1 = osresult1->getTimingInfoType(i);
5320 tempStr2 = osresult1->getTimingInfoCategory(i);
5321 tempStr3 = osresult1->getTimingInfoUnit(i);
5322 tempStr4 = osresult1->getTimingInfoDescription(i);
5323 tempDbl = osresult1->getTimingInfoValue(i);
5324 ok &= osresult2->setTimingInformation(i,tempStr1,tempStr2,tempStr3,tempStr4,tempDbl);
5326 throw ErrorClass(
"Error during setTimingInformation!");
5329 tempStr = osresult1->getUsedDiskSpaceUnit();
5330 ok &= osresult2->setUsedDiskSpaceUnit(tempStr);
5332 throw ErrorClass(
"Error during setUsedDiskSpaceUnit!");
5333 tempStr = osresult1->getUsedDiskSpaceDescription();
5334 ok &= osresult2->setUsedDiskSpaceDescription(tempStr);
5336 throw ErrorClass(
"Error during setUsedDiskSpaceDescription!");
5337 tempDbl = osresult1->getUsedDiskSpaceValue();
5338 ok &= osresult2->setUsedDiskSpaceValue(tempDbl);
5340 throw ErrorClass(
"Error during setUsedDiskSpaceValue!");
5341 tempStr = osresult1->getUsedMemoryUnit();
5342 ok &= osresult2->setUsedMemoryUnit(tempStr);
5344 throw ErrorClass(
"Error during setUsedMemoryUnit!");
5345 tempStr = osresult1->getUsedMemoryDescription();
5346 ok &= osresult2->setUsedMemoryDescription(tempStr);
5348 throw ErrorClass(
"Error during setUsedMemoryDescription!");
5349 tempDbl = osresult1->getUsedMemoryValue();
5350 ok &= osresult2->setUsedMemoryValue(tempDbl);
5352 throw ErrorClass(
"Error during setUsedMemoryValue!");
5353 tempStr = osresult1->getUsedCPUSpeedUnit();
5354 ok &= osresult2->setUsedCPUSpeedUnit(tempStr);
5356 throw ErrorClass(
"Error during setUsedCPUSpeedUnit!");
5357 tempStr = osresult1->getUsedCPUSpeedDescription();
5358 ok &= osresult2->setUsedCPUSpeedDescription(tempStr);
5360 throw ErrorClass(
"Error during setUsedCPUSpeedDescription!");
5361 tempDbl = osresult1->getUsedCPUSpeedValue();
5362 ok &= osresult2->setUsedCPUSpeedValue(tempDbl);
5364 throw ErrorClass(
"Error during setUsedCPUSpeedValue!");
5365 tempStr = osresult1->getUsedCPUNumberDescription();
5366 ok &= osresult2->setUsedCPUNumberDescription(tempStr);
5368 throw ErrorClass(
"Error during setUsedCPUNumberDescription!");
5369 tempInt = osresult1->getUsedCPUNumberValue();
5370 ok &= osresult2->setUsedCPUNumberValue(tempInt);
5372 throw ErrorClass(
"Error during setUsedCPUNumberValue!");
5374 tempInt = osresult1->getNumberOfOtherJobResults();
5375 ok &= osresult2->setNumberOfOtherJobResults(tempInt);
5377 throw ErrorClass(
"Error during setNumberOfOtherJobResults!");
5378 for (
int i=0; i < tempInt; i++)
5380 tempStr = osresult1->getOtherJobResultName(i);
5381 ok &= osresult2->setOtherJobResultName(i,tempStr);
5383 throw ErrorClass(
"Error during setOtherJobResultName!");
5384 tempStr = osresult1->getOtherJobResultValue(i);
5385 ok &= osresult2->setOtherJobResultValue(i,tempStr);
5387 throw ErrorClass(
"Error during setOtherJobResultValue!");
5388 tempStr = osresult1->getOtherJobResultDescription(i);
5389 ok &= osresult2->setOtherJobResultDescription(i,tempStr);
5391 throw ErrorClass(
"Error during setOtherJobResultDescription!");
5394 tempInt = osresult1->getSolutionNumber();
5395 ok &= osresult2->setSolutionNumber(tempInt);
5397 throw ErrorClass(
"Error during setSolutionNumber!");
5398 int nSoln = tempInt;
5399 int nVar, nObj, nCon, nOther, nItem;
5401 tempInt = osresult1->getVariableNumber();
5402 ok &= osresult2->setVariableNumber(tempInt);
5404 throw ErrorClass(
"Error during setVariableNumber!");
5405 tempInt = osresult1->getObjectiveNumber();
5406 ok &= osresult2->setObjectiveNumber(tempInt);
5408 throw ErrorClass(
"Error during setObjectiveNumber!");
5409 tempInt = osresult1->getConstraintNumber();
5410 ok &= osresult2->setConstraintNumber(tempInt);
5412 throw ErrorClass(
"Error during setConstraintNumber!");
5414 for (
int i=0; i < nSoln; ++i)
5416 tempInt = osresult1->getSolutionTargetObjectiveIdx(i);
5417 ok &= osresult2->setSolutionTargetObjectiveIdx(i,tempInt);
5419 throw ErrorClass(
"Error during setSolutionTargetObjectiveIdx!");
5420 tempStr = osresult1->getSolutionTargetObjectiveName(i);
5421 ok &= osresult2->setSolutionTargetObjectiveName(i,tempStr);
5423 throw ErrorClass(
"Error during getSolutionTargetObjectiveName!");
5424 bool tempLog = osresult1->getSolutionWeightedObjectives(i);
5425 ok &= osresult2->setSolutionWeightedObjectives(i,tempLog);
5427 throw ErrorClass(
"Error during setSolutionWeightedObjectives!");
5428 tempStr = osresult1->getSolutionStatusType(i);
5429 ok &= osresult2->setSolutionStatusType(i,tempStr);
5431 throw ErrorClass(
"Error during setSolutionStatusType!");
5432 tempStr = osresult1->getSolutionStatusDescription(i);
5433 ok &= osresult2->setSolutionStatusDescription(i,tempStr);
5435 throw ErrorClass(
"Error during setSolutionStatusDescription!");
5437 tempInt = osresult1->getNumberOfSolutionSubstatuses(i);
5438 ok &= osresult2->setNumberOfSolutionSubstatuses(i,tempInt);
5440 throw ErrorClass(
"Error during setNumberOfSolutionSubstatuses!");
5442 for (
int j=0; j < tempInt; ++j)
5444 tempStr = osresult1->getSolutionSubstatusType(i,j);
5445 ok &= osresult2->setSolutionSubstatusType(i,j,tempStr);
5447 throw ErrorClass(
"Error during setSolutionSubstatusType!");
5448 tempStr = osresult1->getSolutionSubstatusDescription(i,j);
5449 ok &= osresult2->setSolutionSubstatusDescription(i,j,tempStr);
5451 throw ErrorClass(
"Error during setSolutionSubstatusDescription!");
5454 tempStr = osresult1->getSolutionMessage(i);
5455 ok &= osresult2->setSolutionMessage(i,tempStr);
5457 throw ErrorClass(
"Error during setSolutionMessage!");
5459 tempInt = osresult1->getNumberOfVarValues(i);
5460 ok &= osresult2->setNumberOfVarValues(i,tempInt);
5462 throw ErrorClass(
"Error during setNumberOfVarValues!");
5465 for (
int j=0; j < nVar; ++j)
5467 tempInt = osresult1->getVarValueIdx(i,j);
5468 tempStr = osresult1->getVarValueName(i,j);
5469 tempDbl = osresult1->getVarValue(i,j);
5470 ok &= osresult2->setVarValue(i,j,tempInt,tempStr,tempDbl);
5472 throw ErrorClass(
"Error during setVarValue!");
5475 tempInt = osresult1->getNumberOfVarValuesString(i);
5476 ok &= osresult2->setNumberOfVarValuesString(i,tempInt);
5478 throw ErrorClass(
"Error during setNumberOfVarValuesString!");
5481 std::string tempStr1, tempStr2;
5483 for (
int j=0; j < nVar; ++j)
5485 tempInt = osresult1->getVarValueStringIdx(i,j);
5486 tempStr1 = osresult1->getVarValueStringName(i,j);
5487 tempStr2 = osresult1->getVarValueString(i,j);
5488 ok &= osresult2->setVarValueString(i,j,tempInt,tempStr1,tempStr2);
5490 throw ErrorClass(
"Error during setVarValueString!");
5495 for (
int j=0; j<tempInt; ++j)
5499 throw ErrorClass(
"Error during setBasisStatus (variables basic)!");
5502 for (
int j=0; j<tempInt; ++j)
5506 throw ErrorClass(
"Error during setBasisStatus (variables atLower)!");
5509 for (
int j=0; j<tempInt; ++j)
5513 throw ErrorClass(
"Error during setBasisStatus (variables atUpper)!");
5516 for (
int j=0; j<tempInt; ++j)
5520 throw ErrorClass(
"Error during setBasisStatus (variables atEquality)!");
5523 for (
int j=0; j<tempInt; ++j)
5527 throw ErrorClass(
"Error during setBasisStatus (variables isFree)!");
5530 for (
int j=0; j<tempInt; ++j)
5534 throw ErrorClass(
"Error during setBasisStatus (variables superbasic)!");
5537 for (
int j=0; j<tempInt; ++j)
5541 throw ErrorClass(
"Error during setBasisStatus (variables unknown)!");
5544 tempInt = osresult1->getNumberOfOtherVariableResults(i);
5545 ok &= osresult2->setNumberOfOtherVariableResults(i,tempInt);
5547 throw ErrorClass(
"Error during setNumberOfOtherVariableResults!");
5549 for (
int j=0; j < nOther; ++j)
5551 tempStr = osresult1->getOtherVariableResultName(i,j);
5552 ok &= osresult2->setOtherVariableResultName(i,j,tempStr);
5554 throw ErrorClass(
"Error during setOtherVariableResultName!");
5555 tempStr = osresult1->getOtherVariableResultDescription(i,j);
5556 ok &= osresult2->setOtherVariableResultDescription(i,j,tempStr);
5558 throw ErrorClass(
"Error during setOtherVariableResultDescription!");
5559 tempStr = osresult1->getOtherVariableResultValue(i,j);
5560 ok &= osresult2->setOtherVariableResultValue(i,j,tempStr);
5562 throw ErrorClass(
"Error during setOtherVariableResultValue!");
5564 tempInt = osresult1->getOtherVariableResultNumberOfVar(i,j);
5565 ok &= osresult2->setOtherVariableResultNumberOfVar(i,j,tempInt);
5567 throw ErrorClass(
"Error during setOtherVariableResultNumberOfVar!");
5570 for (
int k=0; k < nVar; ++k)
5572 tempInt = osresult1->getOtherVariableResultVarIdx(i,j,k);
5573 ok &= osresult2->setOtherVariableResultVarIdx(i,j,k,tempInt);
5575 throw ErrorClass(
"Error during setOtherVariableResultVarIdx!");
5576 tempStr = osresult1->getOtherVariableResultVar(i,j,k);
5577 ok &= osresult2->setOtherVariableResultVar(i,j,k,tempStr);
5579 throw ErrorClass(
"Error during setOtherVariableResultVar!");
5582 int nEnum = osresult1->getOtherVariableResultNumberOfEnumerations(i,j);
5583 ok &= osresult2->setOtherVariableResultNumberOfEnumerations(i,j,nEnum);
5585 throw ErrorClass(
"Error during setOtherVariableResultNumberOfEnumerations!");
5587 for (
int k=0; k < nEnum; ++k)
5590 tempStr1 = osresult1->getOtherVariableResultEnumerationValue(i,j,k);
5591 tempStr2 = osresult1->getOtherVariableResultEnumerationDescription(i,j,k);
5592 tempInt = osresult1->getOtherVariableResultEnumerationNumberOfEl(i,j,k);
5593 for (
int l=0; l<tempInt; ++l)
5594 tempArray[l] = osresult1->getOtherVariableResultEnumerationEl(i,j,k,l);
5595 ok &= osresult2->setOtherOptionOrResultEnumeration(i,j,
5598 throw ErrorClass(
"Error during setOtherVariableResultEnumeration!");
5602 tempInt = osresult1->getNumberOfObjValues(i);
5603 ok &= osresult2->setNumberOfObjValues(i,tempInt);
5605 throw ErrorClass(
"Error during setNumberOfObjValues!");
5607 for (
int j=0; j < nObj; ++j)
5609 tempInt = osresult1->getObjValueIdx(i,j);
5610 tempStr = osresult1->getObjValueName(i,j);
5611 tempDbl = osresult1->getObjValue(i,j);
5612 ok &= osresult2->setObjValue(i,j,tempInt,tempStr,tempDbl);
5614 throw ErrorClass(
"Error during setObjValue!");
5619 for (
int j=0; j<tempInt; ++j)
5623 throw ErrorClass(
"Error during setBasisStatus (objectives basic)!");
5626 for (
int j=0; j<tempInt; ++j)
5630 throw ErrorClass(
"Error during setBasisStatus (objectives atLower)!");
5633 for (
int j=0; j<tempInt; ++j)
5637 throw ErrorClass(
"Error during setBasisStatus (objectives atUpper)!");
5640 for (
int j=0; j<tempInt; ++j)
5644 throw ErrorClass(
"Error during setBasisStatus (objectives atEquality)!");
5647 for (
int j=0; j<tempInt; ++j)
5651 throw ErrorClass(
"Error during setBasisStatus (objectives isFree)!");
5654 for (
int j=0; j<tempInt; ++j)
5658 throw ErrorClass(
"Error during setBasisStatus (objectives superbasic)!");
5661 for (
int j=0; j<tempInt; ++j)
5665 throw ErrorClass(
"Error during setBasisStatus (objectives unknown)!");
5669 tempInt = osresult1->getNumberOfOtherObjectiveResults(i);
5670 ok &= osresult2->setNumberOfOtherObjectiveResults(i,tempInt);
5672 throw ErrorClass(
"Error during setNumberOfOtherObjectiveResults!");
5674 for (
int j=0; j < nOther; ++j)
5676 tempStr = osresult1->getOtherObjectiveResultName(i,j);
5677 ok &= osresult2->setOtherObjectiveResultName(i,j,tempStr);
5679 throw ErrorClass(
"Error during setOtherObjectiveResultName!");
5680 tempStr = osresult1->getOtherObjectiveResultDescription(i,j);
5681 ok &= osresult2->setOtherObjectiveResultDescription(i,j,tempStr);
5683 throw ErrorClass(
"Error during setOtherObjectiveResultDescription!");
5684 tempStr = osresult1->getOtherObjectiveResultValue(i,j);
5685 ok &= osresult2->setOtherObjectiveResultValue(i,j,tempStr);
5687 throw ErrorClass(
"Error during setOtherObjectiveResultValue!");
5689 tempInt = osresult1->getOtherObjectiveResultNumberOfObj(i,j);
5690 ok &= osresult2->setOtherObjectiveResultNumberOfObj(i,j,tempInt);
5692 throw ErrorClass(
"Error during setOtherObjectiveResultNumberOfObj!");
5695 for (
int k=0; k < nObj; ++k)
5697 tempInt = osresult1->getOtherObjectiveResultObjIdx(i,j,k);
5698 ok &= osresult2->setOtherObjectiveResultObjIdx(i,j,k,tempInt);
5700 throw ErrorClass(
"Error during setOtherObjectiveResultObjIdx!");
5701 tempStr = osresult1->getOtherObjectiveResultObj(i,j,k);
5702 ok &= osresult2->setOtherObjectiveResultObj(i,j,k,tempStr);
5704 throw ErrorClass(
"Error during setOtherObjectiveResultObj!");
5707 int nEnum = osresult1->getOtherObjectiveResultNumberOfEnumerations(i,j);
5708 ok &= osresult2->setOtherObjectiveResultNumberOfEnumerations(i,j,nEnum);
5710 throw ErrorClass(
"Error during setOtherObjectiveResultNumberOfEnumerations!");
5711 std::string tempStr1, tempStr2;
5713 for (
int k=0; k < nEnum; ++k)
5716 tempStr1 = osresult1->getOtherObjectiveResultEnumerationValue(i,j,k);
5717 tempStr2 = osresult1->getOtherObjectiveResultEnumerationDescription(i,j,k);
5718 tempInt = osresult1->getOtherObjectiveResultEnumerationNumberOfEl(i,j,k);
5719 for (
int l=0; l<tempInt; ++l)
5720 tempArray[l] = osresult1->getOtherObjectiveResultEnumerationEl(i,j,k,l);
5721 ok &= osresult2->setOtherOptionOrResultEnumeration(i,j,
5724 throw ErrorClass(
"Error during setOtherObjectiveResultEnumeration!");
5729 tempInt = osresult1->getNumberOfDualValues(i);
5730 ok &= osresult2->setNumberOfDualValues(i,tempInt);
5732 throw ErrorClass(
"Error during setNumberOfDualValues!");
5734 for (
int j=0; j < nCon; ++j)
5736 tempInt = osresult1->getDualValueIdx(i,j);
5737 tempStr = osresult1->getDualValueName(i,j);
5738 tempDbl = osresult1->getDualValue(i,j);
5739 ok &= osresult2->setDualValue(i,j,tempInt,tempStr,tempDbl);
5741 throw ErrorClass(
"Error during setDualValue!");
5746 for (
int j=0; j<tempInt; ++j)
5750 throw ErrorClass(
"Error during setBasisStatus (constraints basic)!");
5753 for (
int j=0; j<tempInt; ++j)
5757 throw ErrorClass(
"Error during setBasisStatus (constraints atLower)!");
5760 for (
int j=0; j<tempInt; ++j)
5764 throw ErrorClass(
"Error during setBasisStatus (constraints atUpper)!");
5767 for (
int j=0; j<tempInt; ++j)
5771 throw ErrorClass(
"Error during setBasisStatus (constraints atEquality)!");
5774 for (
int j=0; j<tempInt; ++j)
5778 throw ErrorClass(
"Error during setBasisStatus (constraints isFree)!");
5781 for (
int j=0; j<tempInt; ++j)
5785 throw ErrorClass(
"Error during setBasisStatus (constraints superbasic)!");
5788 for (
int j=0; j<tempInt; ++j)
5792 throw ErrorClass(
"Error during setBasisStatus (constraints unknown)!");
5797 tempInt = osresult1->getNumberOfOtherConstraintResults(i);
5798 ok &= osresult2->setNumberOfOtherConstraintResults(i,tempInt);
5800 throw ErrorClass(
"Error during setNumberOfOtherConstraintResults!");
5802 for (
int j=0; j < nOther; ++j)
5804 tempStr = osresult1->getOtherConstraintResultName(i,j);
5805 ok &= osresult2->setOtherConstraintResultName(i,j,tempStr);
5807 throw ErrorClass(
"Error during setOtherConstraintResultName!");
5808 tempStr = osresult1->getOtherConstraintResultDescription(i,j);
5809 ok &= osresult2->setOtherConstraintResultDescription(i,j,tempStr);
5811 throw ErrorClass(
"Error during setOtherConstraintResultDescription!");
5812 tempStr = osresult1->getOtherConstraintResultValue(i,j);
5813 ok &= osresult2->setOtherConstraintResultValue(i,j,tempStr);
5815 throw ErrorClass(
"Error during setOtherConstraintResultValue!");
5816 tempInt = osresult1->getOtherConstraintResultNumberOfCon(i,j);
5817 ok &= osresult2->setOtherConstraintResultNumberOfCon(i,j,tempInt);
5819 throw ErrorClass(
"Error during setOtherConstraintResultNumberOfCon!");
5822 for (
int k=0; k < nCon; ++k)
5824 tempInt = osresult1->getOtherConstraintResultConIdx(i,j,k);
5825 ok &= osresult2->setOtherConstraintResultConIdx(i,j,k,tempInt);
5827 throw ErrorClass(
"Error during setOtherConstraintResultConIdx!");
5828 tempStr = osresult1->getOtherConstraintResultCon(i,j,k);
5829 ok &= osresult2->setOtherConstraintResultCon(i,j,k,tempStr);
5831 throw ErrorClass(
"Error during setOtherConstraintResultCon!");
5836 int nEnum = osresult1->getOtherConstraintResultNumberOfEnumerations(i,j);
5837 ok &= osresult2->setOtherConstraintResultNumberOfEnumerations(i,j,nEnum);
5839 throw ErrorClass(
"Error during setOtherConstraintResultNumberOfEnumerations!");
5840 std::string tempStr1, tempStr2;
5842 for (
int k=0; k < nEnum; ++k)
5844 tempStr1 = osresult1->getOtherConstraintResultEnumerationValue(i,j,k);
5845 tempStr2 = osresult1->getOtherConstraintResultEnumerationDescription(i,j,k);
5846 tempInt = osresult1->getOtherConstraintResultEnumerationNumberOfEl(i,j,k);
5847 for (
int l=0; l<tempInt; ++l)
5848 tempArray[l] = osresult1->getOtherConstraintResultEnumerationEl(i,j,k,l);
5849 ok &= osresult2->setOtherOptionOrResultEnumeration(i,j,
5853 throw ErrorClass(
"Error during setOtherConstraintResultEnumeration!");
5858 tempInt = osresult1->getNumberOfOtherSolutionResults(i);
5859 ok &= osresult2->setNumberOfOtherSolutionResults(i,tempInt);
5861 throw ErrorClass(
"Error during setNumberOfOtherSolutionResults!");
5863 for (
int j=0; j < nOther; ++j)
5865 tempStr = osresult1->getOtherSolutionResultName(i,j);
5866 ok &= osresult2->setOtherSolutionResultName(i,j,tempStr);
5868 throw ErrorClass(
"Error during setOtherSolutionResultName!");
5869 tempStr = osresult1->getOtherSolutionResultCategory(i,j);
5870 ok &= osresult2->setOtherSolutionResultCategory(i,j,tempStr);
5872 throw ErrorClass(
"Error during setOtherSolutionResultCategory!");
5873 tempStr = osresult1->getOtherSolutionResultDescription(i,j);
5874 ok &= osresult2->setOtherSolutionResultDescription(i,j,tempStr);
5876 throw ErrorClass(
"Error during setOtherSolutionResultDescription!");
5877 tempInt = osresult1->getOtherSolutionResultNumberOfItems(i,j);
5878 ok &= osresult2->setOtherSolutionResultNumberOfItems(i,j,tempInt);
5880 throw ErrorClass(
"Error during setOtherSolutionResultNumberOfItems!");
5883 for (
int k=0; k < nItem; ++k)
5885 tempStr = osresult1->getOtherSolutionResultItem(i,j,k);
5886 ok &= osresult2->setOtherSolutionResultItem(i,j,k,tempStr);
5888 throw ErrorClass(
"Error during setSolutionResultItem!");
5893 tempInt = osresult1->getNumberOfSolverOutputs();
5894 ok &= osresult2->setNumberOfSolverOutputs(tempInt);
5896 throw ErrorClass(
"Error during setNumberOfSolverOutputs!");
5898 for (
int i=0; i < nOther; ++i)
5900 tempStr = osresult1->getSolverOutputName(i);
5901 ok &= osresult2->setSolverOutputName(i,tempStr);
5903 throw ErrorClass(
"Error during setSolverOutputName!");
5904 tempStr = osresult1->getSolverOutputCategory(i);
5905 ok &= osresult2->setSolverOutputCategory(i,tempStr);
5907 throw ErrorClass(
"Error during setSolverOutputCategory!");
5908 tempStr = osresult1->getSolverOutputDescription(i);
5909 ok &= osresult2->setSolverOutputDescription(i,tempStr);
5911 throw ErrorClass(
"Error during setSolverOutputDescription!");
5912 tempInt = osresult1->getSolverOutputNumberOfItems(i);
5913 ok &= osresult2->setSolverOutputNumberOfItems(i,tempInt);
5915 throw ErrorClass(
"Error during setSolverOutputNumberOfItems!");
5916 for (
int j=0; j < tempInt; ++j)
5918 tempStr = osresult1->getSolverOutputItem(i,j);
5919 ok &= osresult2->setSolverOutputItem(i,j,tempStr);
5921 throw ErrorClass(
"Error during setSolverOutputItem!");
5926 ok &= osresult1->IsEqual(osresult2);
5928 throw ErrorClass(
"Error duplicating OSResult object using get() and set() methods");
5930 if (osrlwriter != NULL)
delete osrlwriter;
5932 if (osrlreader != NULL)
delete osrlreader;
5934 if (osresult1 != NULL)
delete osresult1;
5936 if (osresult2 != NULL)
delete osresult2;
5940 if (tempArray != NULL)
delete[] tempArray;
5943 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of OSrL tools" << std::endl;
5944 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
5949 cout << endl << endl << endl;
5950 if (osrlwriter != NULL)
delete osrlwriter;
5952 if (osrlreader != NULL)
delete osrlreader;
5954 if (osresult1 != NULL)
delete osresult1;
5956 if (osresult2 != NULL)
delete osresult2;
5961 if (tempArray != NULL)
delete[] tempArray;
5964 unitTestResultFailure << eclass.errormsg << endl;
5965 unitTestResultFailure <<
"Test " << nOfTest <<
": There was a failure in the test of OSrL get() methods" << endl;
5980 cout << endl <<
"TEST " << ++nOfTest <<
": OSrL parser" << endl << endl;
5986 std::string tmpOSrL;
5987 clock_t start, finish;
5990 cout <<
"Test parsing an OSrL file" << endl;
5991 cout <<
"First read the OSrL file into a string" << endl;
5992 osrlFileName = dataDir +
"osrlFiles" + dirsep +
"parserTest.osrl";
5994 osrl = fileUtil->getFileAsString( osrlFileName.c_str() );
5996 duration = (double) (finish - start) / CLOCKS_PER_SEC;
5997 cout <<
"Reading the file into a string took (seconds): "<< duration << endl;
5998 cout << osrl << endl;
6000 cout <<
"PARSE THE OSRL STRING INTO AN OSRESULT OBJECT" << endl;
6001 osresult = osrlreader->readOSrL( osrl);
6002 cout <<
"Finished read; write OSResult object to temporary string" << endl;
6006 cout << tmpOSrL << endl;
6012 osrlreader->readOSrL( tmpOSrL);
6024 cout << endl <<
"Test parsing another OSrL file" << endl;
6027 cout <<
"FIRST READ THE OSrL FILE INTO A STRING" << endl;
6029 osrlFileName = dataDir +
"osrlFiles" + dirsep +
"errorExample.osrl";
6030 osrl = fileUtil->getFileAsString( osrlFileName.c_str() );
6032 duration = (double) (finish - start) / CLOCKS_PER_SEC;
6033 cout <<
"Reading the file into a string took (seconds): "<< duration << endl;
6034 cout <<
"PARSE THE OSRL STRING INTO AN OSRESULT OBJECT" << endl;
6035 osresult = osrlreader->readOSrL( osrl);
6039 osrlreader->readOSrL( tmpOSrL);
6046 "TEST " << nOfTest <<
": Successful test of OSrL parser on file parserTest.osrl"
6048 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6052 unitTestResultFailure << eclass.errormsg << endl;
6053 unitTestResultFailure <<
"Test " << nOfTest <<
": There was a failure in the test for reading OSrL" << endl;
6055 if(osrlwriter != NULL)
delete osrlwriter;
6057 if(osrlreader != NULL)
delete osrlreader;
6059 if (fileUtil != NULL)
6064 if (intArray !=NULL)
6075 cout << endl <<
"TEST " << ++nOfTest <<
": Clp solver on parincLinearByRow.osil" << endl << endl;
6085 std::cout <<
"create a new COIN Clp for OSiL string solution" << std::endl;
6086 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincLinearByRow.osil";
6087 osolFileName = dataDir +
"osolFiles" + dirsep +
"parincLinearByRow_clp.osol";
6088 osil = fileUtil->getFileAsString( osilFileName.c_str());
6089 osol = fileUtil->getFileAsString( osolFileName.c_str());
6092 solver->
osinstance = osilreader->readOSiL( osil);
6093 std::cout <<
" Done reading the OSiL" << std::endl;
6095 osilwriter->m_bWhiteSpace =
true;
6096 std::cout <<
" Write the OSiL" << std::endl;
6097 osil = osilwriter->writeOSiL( solver->
osinstance) ;
6099 std::cout <<
" Done writing the OSiL" << std::endl;
6101 cout <<
"call the COIN - clp Solver for parincLinearbyRow" << endl;
6103 std::cout <<
"call solver" << std::endl;
6105 std::cout <<
"returned from solver" << std::endl;
6111 cout << solver->
osrl << endl;
6113 cout <<
"COIN clp solver solution for parincLinearByRow checks." << endl;
6116 { cout <<
"COIN clp solver solution for parincLinearByRow in error:" << endl;
6117 cout << solver->
osrl << endl;
6119 if(ok ==
false)
throw ErrorClass(
" Fail unit test with clp on parincLinearByRow.osil");
6122 cout <<
"\nThe osrl file:\n" << solver->
osrl << endl;
6123 cout <<
"Start parsing the file" << endl;
6125 osrlreader->readOSrL( solver->
osrl);
6127 cout <<
"read successfully" << endl;
6132 cout <<
"osilreader successfully deleted" << endl;
6137 cout <<
"osolreader successfully deleted" << endl;
6142 cout <<
"solver successfully deleted" << endl;
6147 cout <<
"osilwriter successfully deleted" << endl;
6152 cout <<
"osrlreader successfully deleted" << endl;
6157 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincLinearByRow.osil with Clp" << std::endl;
6158 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6162 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Clp Solver:"
6163 << endl << eclass.errormsg<< endl;
6165 if (osilreader != NULL)
6168 if (osolreader != NULL)
6174 if (osilwriter != NULL)
6177 if (osrlreader != NULL)
6180 if (fileUtil != NULL)
6188 cout << endl <<
"TEST " << ++nOfTest <<
": Clp warmstart tests with parincLinear.osil" << endl << endl;
6204 std::cout <<
"simply size the warmstart" << std::endl;
6205 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincLinear.osil";
6207 cSolver->sSolverName =
"clp";
6208 cSolver->osil = fileUtil->getFileAsString( osilFileName.c_str());
6209 cSolver->osoption =
new OSOption();
6211 cSolver->osoption->optimization->variables =
new VariableOption();
6212 cSolver->osoption->optimization->variables->initialBasisStatus =
new BasisStatus();
6214 cSolver->osoption->optimization->constraints->initialBasisStatus =
new BasisStatus();
6215 ok &= cSolver->osoption->setAnotherSolverOption(
"primalSimplex",
"true",
"osi",
"",
"bool",
"");
6217 std::cout <<
"call the COIN - clp Solver for parincLinear" << std::endl;
6219 std::cout <<
"returned from solver" << std::endl;
6222 std::cout <<
"initial solution took " <<
getItCount(cSolver->osrl) <<
" iterations" << std::endl;
6226 cout <<
"COIN clp solver interface passes initial warmstart test." << endl;
6230 cout <<
"COIN clp solver interface warmstart error:" << endl;
6231 cout << cSolver->osrl << endl;
6234 if(ok ==
false)
throw ErrorClass(
" Fail unit test with clp warmstarts on parincLinear.osil");
6237 std::cout << std::endl <<
"put a complete advanced basis" << std::endl;
6239 cSolver->sSolverName =
"clp";
6240 cSolver->osil = fileUtil->getFileAsString( osilFileName.c_str());
6241 cSolver->osoption =
new OSOption();
6243 cSolver->osoption->optimization->variables =
new VariableOption();
6244 cSolver->osoption->optimization->variables->initialBasisStatus =
new BasisStatus();
6246 cSolver->osoption->optimization->constraints->initialBasisStatus =
new BasisStatus();
6262 if(ok ==
false)
throw ErrorClass(
" Fail setting warmstart advanced basis for clp");
6264 std::cout <<
"call the COIN - clp Solver" << std::endl;
6266 std::cout <<
"returned from solver" << std::endl;
6269 std::cout <<
"warmstart solution took " <<
getItCount(cSolver->osrl) <<
" iterations" << std::endl;
6274 cout <<
"COIN clp solver interface passes complete basis warmstart test." << endl;
6278 cout <<
"COIN clp solver interface warmstart error:" << endl;
6279 cout << cSolver->osrl << endl;
6282 if(ok ==
false)
throw ErrorClass(
" Fail unit test with clp warmstarts on parincLinear.osil");
6286 std::cout << std::endl <<
"put a partial basis" << std::endl;
6288 cSolver->sSolverName =
"clp";
6289 cSolver->osil = fileUtil->getFileAsString( osilFileName.c_str());
6290 cSolver->osoption =
new OSOption();
6292 cSolver->osoption->optimization->variables =
new VariableOption();
6293 cSolver->osoption->optimization->variables->initialBasisStatus =
new BasisStatus();
6295 cSolver->osoption->optimization->constraints->initialBasisStatus =
new BasisStatus();
6304 if(ok ==
false)
throw ErrorClass(
" Fail setting warmstart partial basis for clp");
6305 std::cout <<
"call the COIN - clp Solver" << std::endl;
6307 std::cout <<
"returned from solver" << std::endl;
6310 std::cout <<
"warmstart solution took " <<
getItCount(cSolver->osrl) <<
" iterations" << std::endl;
6314 cout <<
"COIN clp solver interface passes partial basis warmstart test." << endl;
6318 cout <<
"COIN clp solver interface warmstart error:" << endl;
6319 cout << cSolver->osrl << endl;
6322 if(ok ==
false)
throw ErrorClass(
" Fail unit test with clp warmstarts on parincLinear.osil");
6326 std::cout << std::endl <<
"test unusual basis statuses" << std::endl;
6328 cSolver->sSolverName =
"clp";
6329 cSolver->osil = fileUtil->getFileAsString( osilFileName.c_str());
6330 cSolver->osoption =
new OSOption();
6332 cSolver->osoption->optimization->variables =
new VariableOption();
6333 cSolver->osoption->optimization->variables->initialBasisStatus =
new BasisStatus();
6335 cSolver->osoption->optimization->constraints->initialBasisStatus =
new BasisStatus();
6351 if(ok ==
false)
throw ErrorClass(
" Fail setting unusual basis statuses for clp");
6352 std::cout <<
"call the COIN - clp Solver" << std::endl;
6354 std::cout <<
"returned from solver" << std::endl;
6357 std::cout <<
"warmstart solution took " <<
getItCount(cSolver->osrl) <<
" iterations" << std::endl;
6361 cout <<
"COIN clp solver interface passes unusual basis warmstart test." << endl;
6365 cout <<
"COIN clp solver interface warmstart error:" << endl;
6366 cout << cSolver->osrl << endl;
6369 if(ok ==
false)
throw ErrorClass(
" Fail unit test with clp warmstarts on parincLinear.osil");
6372 std::cout << std::endl <<
"test over-saturated basis" << std::endl;
6374 cSolver->sSolverName =
"clp";
6375 cSolver->osil = fileUtil->getFileAsString( osilFileName.c_str());
6376 cSolver->osoption =
new OSOption();
6378 cSolver->osoption->optimization->variables =
new VariableOption();
6379 cSolver->osoption->optimization->variables->initialBasisStatus =
new BasisStatus();
6381 cSolver->osoption->optimization->constraints->initialBasisStatus =
new BasisStatus();
6396 if(ok ==
false)
throw ErrorClass(
" Fail setting over-saturated basis for clp");
6397 std::cout <<
"call the COIN - clp Solver" << std::endl;
6399 std::cout <<
"returned from solver" << std::endl;
6402 std::cout <<
"warmstart solution took " <<
getItCount(cSolver->osrl) <<
" iterations" << std::endl;
6406 cout <<
"COIN clp solver interface passes over-saturated basis warmstart test." << endl;
6410 cout <<
"COIN clp solver interface warmstart error:" << endl;
6411 cout << cSolver->osrl << endl;
6413 if(ok ==
false)
throw ErrorClass(
" Fail unit test with clp warmstarts on parincLinear.osil");
6416 std::cout << std::endl <<
"test using optimal basis" << std::endl;
6418 cSolver->sSolverName =
"clp";
6419 cSolver->osil = fileUtil->getFileAsString( osilFileName.c_str());
6420 cSolver->osoption =
new OSOption();
6422 cSolver->osoption->optimization->variables =
new VariableOption();
6423 cSolver->osoption->optimization->variables->initialBasisStatus =
new BasisStatus();
6425 cSolver->osoption->optimization->constraints->initialBasisStatus =
new BasisStatus();
6439 double* iv =
new double[2];
6440 iv[0] = 539.9999999999999;
6441 iv[1] = 252.0000000000001;
6442 ok &= cSolver->osoption->setInitVarValuesDense(2,iv);
6443 if (!ok)
throw ErrorClass(
" Fail setting starting values during warmstart tests");
6446 std::cout <<
"call the COIN - clp Solver" << std::endl;
6448 std::cout <<
"returned from solver" << std::endl;
6451 std::cout <<
"solve from optimal solution took " <<
getItCount(cSolver->osrl) <<
" iterations" << std::endl;
6456 cout <<
"COIN clp solver interface passes warmstart from optimal basis." << endl;
6460 cout <<
"COIN clp solver interface warmstart error:" << endl;
6461 cout << cSolver->osrl << endl;
6464 cout << cSolver->osrl << endl;
6465 if(ok ==
false)
throw ErrorClass(
" Fail unit test with clp warmstarts on parincLinear.osil");
6470 cout <<
"solver successfully deleted" << endl;
6475 unitTestResult <<
"TEST " << nOfTest <<
": Warmstarts for problem parincLinear.osil with Clp" << std::endl;
6476 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6480 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Clp Solver Warmstarts:"
6481 << endl << eclass.errormsg<< endl;
6483 if (cSolver != NULL)
6486 if (fileUtil != NULL)
6495 cout << endl <<
"TEST " << ++nOfTest <<
": Clp solver on parincQuadratic.osil" << endl << endl;
6496 cout <<
"create a new Clp Solver for OSiL string solution" << endl;
6502 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincQuadratic.osil";
6503 osil = fileUtil->getFileAsString( osilFileName.c_str());
6505 solver->
osinstance = osilreader->readOSiL( osil);
6506 solver->
osil = osil;
6507 cout <<
"call the clp Solver" << endl;
6515 cout << solver->
osrl << endl;
6517 cout <<
"Clp solver solution for parincQuadratic checks." << endl;
6520 { cout <<
"Clp solver solution for parincQuadratic in error:" << endl;
6521 cout << solver->
osrl << endl;
6523 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Clp on parincQuadradic.osil");
6530 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.osil with Clp" << std::endl;
6531 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6535 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Clp Solver:"
6536 << endl << eclass.errormsg<< endl;
6537 if (osilreader != NULL)
6543 if (fileUtil != NULL)
6551 cout << endl <<
"TEST " << ++nOfTest <<
": Cbc solver on p0033.osil" << endl << endl;
6558 std::cout <<
"create a new COIN Cbc for OSiL string solution" << std::endl;
6560 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
6562 osil = fileUtil->getFileAsString( osilFileName.c_str());
6566 solver->
osil = osil;
6567 solver->
osol = osol;
6570 cout <<
"call the COIN - Cbc Solver for p0033" << endl;
6578 cout << solver->
osrl << endl;
6580 cout <<
"Coin cbc solution for p0033 checks" << endl;
6583 { cout <<
"Coin cbc solution for p0033 in error:" << endl;
6584 cout << solver->
osrl << endl;
6586 if (ok ==
false)
throw ErrorClass(
" Fail unit test with Cbc on p0033.osil");
6596 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with Cbc" << std::endl;
6597 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6601 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Cbc Solver:"
6602 << endl << eclass.errormsg<< endl;
6606 if (osilreader != NULL)
6609 if (osolreader != NULL)
6612 if (fileUtil != NULL)
6617if( THOROUGH ==
true){
6621 cout << endl <<
"TEST " << ++nOfTest <<
": Cbc solver on p0033MULT.osil" << endl << endl;
6628 std::cout <<
"create a new COIN Cbc for OSiL string solution" << std::endl;
6630 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033MULT.osil";
6632 osil = fileUtil->getFileAsString( osilFileName.c_str());
6636 solver->
osil = osil;
6637 solver->
osol = osol;
6640 cout <<
"call the COIN - Cbc Solver for p0033MULT" << endl;
6648 cout << solver->
osrl << endl;
6650 cout <<
"Coin cbc solution for p0033MULT checks" << endl;
6653 { cout <<
"Coin cbc solution for p0033MULT in error:" << endl;
6654 cout << solver->
osrl << endl;
6656 if (ok ==
false)
throw ErrorClass(
" Fail unit test with Cbc on p0033MULT.osil");
6665 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033MULT.osil with Cbc" << std::endl;
6666 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6670 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Cbc Solver:"
6671 << endl << eclass.errormsg<< endl;
6675 if (osilreader != NULL)
6678 if (osolreader != NULL)
6681 if (fileUtil != NULL)
6689 cout << endl <<
"TEST " << ++nOfTest <<
": Cbc solver on p0033.osil - node limit set" << endl << endl;
6697 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
6698 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0033_cbc.osol";
6699 osil = fileUtil->getFileAsString( osilFileName.c_str());
6700 osol = fileUtil->getFileAsString( osolFileName.c_str());
6702 solver->
osil = osil;
6703 solver->
osol = osol;
6706 cout <<
"call the COIN - Cbc Solver for p0033" << endl;
6711 if( solver->
osrl.find(
"node limit reached") != std::string::npos)
6715 if (ok ==
false)
throw ErrorClass(
" node limit option on p0033.osil not processed properly");
6724 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with Cbc node limit" << std::endl;
6725 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6729 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Cbc Solver:"
6730 << endl << eclass.errormsg<< endl;
6734 if (osilreader != NULL)
6737 if (osolreader != NULL)
6740 if (fileUtil != NULL)
6747 cout << endl <<
"TEST " << ++nOfTest <<
": Cbc solver on p0201.osil" << endl << endl;
6755 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0201.osil";
6756 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0201_cbc.osol";
6757 osil = fileUtil->getFileAsString( osilFileName.c_str());
6758 osol = fileUtil->getFileAsString( osolFileName.c_str());
6760 solver->
osil = osil;
6761 solver->
osol = osol;
6764 cout <<
"call the COIN - Cbc Solver for p0201" << endl;
6766 cout <<
"Here is the COIN Cbc solver solution for p0201" << endl;
6767 std::cout << solver->
osrl << std::endl;
6771 string::size_type pos;
6772 pos = solver->
osrl.find(
"node limit");
6773 if(pos == std::string::npos)
throw ErrorClass(
" Error with p0201 on Cbc");
6785 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0201.osil with Cbc" << std::endl;
6786 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6790 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Cbc Solver:"
6791 << endl << eclass.errormsg<< endl;
6795 if (osilreader != NULL)
6798 if (osolreader != NULL)
6801 if (fileUtil != NULL)
6807 cout << endl <<
"TEST " << ++nOfTest <<
": Cbc solver on parincInteger.osil" << endl << endl;
6815 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincInteger.osil";
6816 osolFileName = dataDir +
"osolFiles" + dirsep +
"parincInteger_cbc.osol";
6817 osil = fileUtil->getFileAsString( osilFileName.c_str());
6818 osol = fileUtil->getFileAsString( osolFileName.c_str());
6820 cout <<
"parse OSiL file" << endl;
6821 solver->
osinstance = osilreader->readOSiL( osil);
6822 solver->
osol = osol;
6823 cout <<
"call the COIN - Cbc Solver for parincInteger" << endl;
6831 cout << solver->
osrl << endl;
6833 cout <<
"COIN cbc solver solution for parincInteger checks." << endl;
6838 { cout <<
"COIN cbc solver solution for parincInteger in error:" << endl;
6839 cout << solver->
osrl << endl;
6841 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Cbc on parincInteger.osil");
6850 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincInteger.osil with Cbc" << std::endl;
6851 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6855 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Cbc Solver:"
6856 << endl << eclass.errormsg<< endl;
6860 if (osilreader != NULL)
6863 if (osolreader != NULL)
6866 if (fileUtil != NULL)
6872#ifdef COIN_HAS_SYMPHONY
6874 cout << endl <<
"TEST " << ++nOfTest <<
": SYMPHONY solver on p0033.osil" << endl << endl;
6881 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
6882 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0033_sym.osol";
6883 osil = fileUtil->getFileAsString( osilFileName.c_str());
6884 osol = fileUtil->getFileAsString( osolFileName.c_str());
6886 solver->
osil = osil;
6889 cout <<
"build the solver instance for COIN - SYMPHONY" << endl;
6899 cout << solver->
osrl << endl;
6901 cout <<
"COIN SYMPHONY solver solution for p0033 checks." << endl;
6904 { cout <<
"COIN SYMPHONY solver solution for p0033 in error:" << endl;
6905 cout << solver->
osrl << endl;
6907 if(ok ==
false)
throw ErrorClass(
" Fail unit test with SYMPHONY on p0033.osil");
6914 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with SYMPHONY" << std::endl;
6915 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6919 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the SYMPHONY Solver:"
6920 << endl << eclass.errormsg << endl;
6924 if (osolreader != NULL)
6927 if (fileUtil != NULL)
6937 cout << endl <<
"TEST " << ++nOfTest <<
": DyLP solver on parincLinear.osil" << endl << endl;
6944 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincLinear.osil";
6945 osolFileName = dataDir +
"osolFiles" + dirsep +
"parincLinear_dylp.osol";
6946 osil = fileUtil->getFileAsString( osilFileName.c_str());
6947 osol = fileUtil->getFileAsString( osolFileName.c_str());
6949 solver->
osol = osol;
6950 solver->
osinstance = osilreader->readOSiL( osil);
6951 cout <<
"call the COIN - DyLP solver for parincLinear" << endl;
6960 cout << solver->
osrl << endl;
6962 cout <<
"COIN DyLP solver solution for parincLinear checks." << endl;
6965 { cout <<
"COIN DyLP solver solution for parincLinear in error:" << endl;
6966 cout << solver->
osrl << endl;
6968 if(ok ==
false)
throw ErrorClass(
" Fail unit test with DyLP on parincLinear.osil");
6975 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincLinear.osil with DyLP" << std::endl;
6976 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
6980 cout <<
"OSrL = " << solver->
osrl << endl;
6981 cout << endl << endl << endl;
6982 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the DyLP Solver:"
6983 << endl << eclass.errormsg << endl;
6987 if (osilreader != NULL)
6990 if (fileUtil != NULL)
6999 cout << endl <<
"TEST " << ++nOfTest <<
": Vol solver on volumeTest.osil" << endl << endl;
7006 osilFileName = dataDir +
"osilFiles" + dirsep +
"volumeTest.osil";
7007 osolFileName = dataDir +
"osolFiles" + dirsep +
"volumeTest_vol.osol";
7008 osil = fileUtil->getFileAsString( osilFileName.c_str());
7009 osol = fileUtil->getFileAsString( osolFileName.c_str());
7011 solver->
osil = osil;
7014 cout <<
"call the COIN - Vol solver for volumeTest" << endl;
7023 cout << solver->
osrl << endl;
7025 cout <<
"COIN Vol solver solution for volumeTest checks." << endl;
7028 { cout <<
"COIN Vol solver solution for volumeTest in error:" << endl;
7029 cout << solver->
osrl << endl;
7031 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Vol on volumeTest.osil");
7038 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem volumeTest.osil with Vol" << std::endl;
7039 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7043 cout <<
"OSrL = " << solver->
osrl << endl;
7044 cout << endl << endl << endl;
7045 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Vol Solver:"
7046 << endl << eclass.errormsg << endl;
7050 if (osolreader != NULL)
7053 if (fileUtil != NULL)
7061 cout << endl <<
"TEST " << ++nOfTest <<
": GLPK solver on p0033.osil" << endl << endl;
7069 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
7070 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0033_glpk.osol";
7071 osil = fileUtil->getFileAsString( osilFileName.c_str());
7072 osol = fileUtil->getFileAsString( osolFileName.c_str());
7074 solver->
osinstance = osilreader->readOSiL( osil);
7076 cout <<
"call the GLPK Solver for p0033" << endl;
7085 cout << solver->
osrl << endl;
7087 cout <<
"GLPK solver solution for p0033 checks." << endl;
7090 { cout <<
"GLPK solver solution for p0033 in error:" << endl;
7091 cout << solver->
osrl << endl;
7093 if(ok ==
false)
throw ErrorClass(
" Fail unit test with GLPK on p0033.osil");
7102 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with GLPK" << std::endl;
7103 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7107 cout <<
"OSrL = " << solver->
osrl << endl;
7108 cout << endl << endl << endl;
7109 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Glpk Solver:"
7110 << endl << eclass.errormsg << endl;
7114 if (osilreader != NULL)
7117 if (osolreader != NULL)
7120 if (fileUtil != NULL)
7128 cout << endl <<
"TEST " << ++nOfTest <<
": Cplex solver on p0033.osil" << endl << endl;
7134 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
7135 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0033_cpx.osol";
7136 osil = fileUtil->getFileAsString( osilFileName.c_str());
7137 osol = fileUtil->getFileAsString( osolFileName.c_str());
7139 solver->
osil = osil;
7140 solver->
osol = osol;
7142 cout <<
"call the CPLEX Solver for p0033" << endl;
7151 cout << solver->
osrl << endl;
7153 cout <<
"CPLEX solver solution for p0033 checks." << endl;
7156 { cout <<
"CPLEX solver solution for p0033 in error:" << endl;
7157 cout << solver->
osrl << endl;
7159 if(ok ==
false)
throw ErrorClass(
" Fail unit test with CPLEX on p0033.osil");
7164 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with CPLEX" << std::endl;
7165 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7169 cout <<
"OSrL = " << solver->
osrl << endl;
7170 cout << endl << endl << endl;
7171 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Cplex Solver:"
7172 << endl << eclass.errormsg << endl;
7176 if (fileUtil != NULL)
7185 cout << endl <<
"TEST " << ++nOfTest <<
": Cplex solver on parincQuadratic.osil" << endl << endl;
7186 cout <<
"create a new Cplex Solver for OSiL string solution" << endl;
7192 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincQuadratic.osil";
7193 osil = fileUtil->getFileAsString( osilFileName.c_str());
7195 solver->
osinstance = osilreader->readOSiL( osil);
7196 solver->
osil = osil;
7197 cout <<
"call the Cplex Solver" << endl;
7205 cout << solver->
osrl << endl;
7207 cout <<
"Cplex solver solution for parincQuadratic checks." << endl;
7210 { cout <<
"Cplex solver solution for parincQuadratic in error:" << endl;
7211 cout << solver->
osrl << endl;
7213 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Cplex on parincQuadradic.osil");
7220 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.osil with Cplex" << std::endl;
7221 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7225 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Cplex Solver:"
7226 << endl << eclass.errormsg<< endl;
7227 if (osilreader != NULL)
7233 if (fileUtil != NULL)
7243 cout << endl <<
"TEST " << ++nOfTest <<
": Gurobi solver on p0033.osil" << endl << endl;
7249 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
7250 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0033_cpx.osol";
7251 osil = fileUtil->getFileAsString( osilFileName.c_str());
7252 osol = fileUtil->getFileAsString( osolFileName.c_str());
7254 solver->
osil = osil;
7255 solver->
osol = osol;
7257 cout <<
"call the Gurobi Solver for p0033" << endl;
7266 cout << solver->
osrl << endl;
7268 cout <<
"Gurobi solver solution for p0033 checks." << endl;
7271 { cout <<
"Gurobi solver solution for p0033 in error:" << endl;
7272 cout << solver->
osrl << endl;
7274 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Gurobi on p0033.osil");
7279 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with Gurobi" << std::endl;
7280 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7284 cout <<
"OSrL = " << solver->
osrl << endl;
7285 cout << endl << endl << endl;
7286 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Gurobi Solver:"
7287 << endl << eclass.errormsg << endl;
7291 if (fileUtil != NULL)
7300 cout << endl <<
"TEST " << ++nOfTest <<
": Gurobi solver on parincQuadratic.osil" << endl << endl;
7301 cout <<
"create a new Gurobi Solver for OSiL string solution" << endl;
7307 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincQuadratic.osil";
7308 osil = fileUtil->getFileAsString( osilFileName.c_str());
7310 solver->
osinstance = osilreader->readOSiL( osil);
7311 solver->
osil = osil;
7312 cout <<
"call the Gurobi Solver" << endl;
7320 cout << solver->
osrl << endl;
7322 cout <<
"Gurobi solver solution for parincQuadratic checks." << endl;
7325 { cout <<
"Gurobi solver solution for parincQuadratic in error:" << endl;
7326 cout << solver->
osrl << endl;
7328 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Gurobi on parincQuadradic.osil");
7335 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.osil with Gurobi" << std::endl;
7336 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7340 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Gurobi Solver:"
7341 << endl << eclass.errormsg<< endl;
7342 if (osilreader != NULL)
7348 if (fileUtil != NULL)
7357 cout << endl <<
"TEST " << ++nOfTest <<
": MOSEK solver on p0033.osil" << endl << endl;
7363 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
7364 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0033_cpx.osol";
7365 osil = fileUtil->getFileAsString( osilFileName.c_str());
7366 osol = fileUtil->getFileAsString( osolFileName.c_str());
7368 solver->
osil = osil;
7369 solver->
osol = osol;
7371 cout <<
"call the MOSEK Solver for p0033" << endl;
7380 cout << solver->
osrl << endl;
7382 cout <<
"MOSEK solver solution for p0033 checks." << endl;
7385 { cout <<
"MOSEK solver solution for p0033 in error:" << endl;
7386 cout << solver->
osrl << endl;
7388 if(ok ==
false)
throw ErrorClass(
" Fail unit test with MOSEK on p0033.osil");
7393 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with MOSEK" << std::endl;
7394 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7398 cout <<
"OSrL = " << solver->
osrl << endl;
7399 cout << endl << endl << endl;
7400 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the MOSEK Solver:"
7401 << endl << eclass.errormsg << endl;
7405 if (fileUtil != NULL)
7414 cout << endl <<
"TEST " << ++nOfTest <<
": MOSEK solver on parincQuadratic.osil" << endl << endl;
7415 cout <<
"create a new MOSEK Solver for OSiL string solution" << endl;
7421 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincQuadratic.osil";
7422 osil = fileUtil->getFileAsString( osilFileName.c_str());
7424 solver->
osinstance = osilreader->readOSiL( osil);
7425 solver->
osil = osil;
7426 cout <<
"call the MOSEK Solver" << endl;
7434 cout << solver->
osrl << endl;
7436 cout <<
"MOSEK solver solution for parincQuadratic checks." << endl;
7439 { cout <<
"MOSEK solver solution for parincQuadratic in error:" << endl;
7440 cout << solver->
osrl << endl;
7442 if(ok ==
false)
throw ErrorClass(
" Fail unit test with MOSEK on parincQuadradic.osil");
7449 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.osil with MOSEK" << std::endl;
7450 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7454 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the MOSEK Solver:"
7455 << endl << eclass.errormsg<< endl;
7456 if (osilreader != NULL)
7462 if (fileUtil != NULL)
7469#ifdef COIN_HAS_SOPLEX
7471 cout << endl <<
"TEST " << ++nOfTest <<
": SoPlex solver on parincLinear.osil" << endl << endl;
7477 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincLinear.osil";
7478 osil = fileUtil->getFileAsString( osilFileName.c_str());
7480 solver->
osil = osil;
7482 cout <<
"call the SoPlex Solver for parincLinear" << endl;
7491 cout << solver->
osrl << endl;
7493 cout <<
"SoPlex solver solution for parincLinear checks." << endl;
7497 cout <<
"SoPlex solver solution for parincLinear in error:" << endl;
7498 cout << solver->
osrl << endl;
7500 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Soplex on parincLinear.osil");
7505 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincLinear.osil with SoPlex" << std::endl;
7506 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7510 cout <<
"OSrL = " << solver->
osrl << endl;
7511 cout << endl << endl << endl;
7512 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the SoPlex Solver:"
7513 << endl << eclass.errormsg << endl;
7517 if (fileUtil != NULL)
7525 cout << endl <<
"TEST " << ++nOfTest <<
": XPRESS solver on p0033.osil" << endl << endl;
7531 osilFileName = dataDir +
"osilFiles" + dirsep +
"p0033.osil";
7532 osolFileName = dataDir +
"osolFiles" + dirsep +
"p0033_cpx.osol";
7533 osil = fileUtil->getFileAsString( osilFileName.c_str());
7534 osol = fileUtil->getFileAsString( osolFileName.c_str());
7536 solver->
osil = osil;
7537 solver->
osol = osol;
7539 cout <<
"call the XPRESS Solver for p0033" << endl;
7548 cout << solver->
osrl << endl;
7550 cout <<
"XPRESS solver solution for p0033 checks." << endl;
7553 { cout <<
"XPRESS solver solution for p0033 in error:" << endl;
7554 cout << solver->
osrl << endl;
7556 if(ok ==
false)
throw ErrorClass(
" Fail unit test with XPRESS on p0033.osil");
7561 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem p0033.osil with XPRESS" << std::endl;
7562 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7566 cout <<
"OSrL = " << solver->
osrl << endl;
7567 cout << endl << endl << endl;
7568 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the XPRESS Solver:"
7569 << endl << eclass.errormsg << endl;
7573 if (fileUtil != NULL)
7582 cout << endl <<
"TEST " << ++nOfTest <<
": XPRESS solver on parincQuadratic.osil" << endl << endl;
7583 cout <<
"create a new XPRESS Solver for OSiL string solution" << endl;
7589 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincQuadratic.osil";
7590 osil = fileUtil->getFileAsString( osilFileName.c_str());
7592 solver->
osinstance = osilreader->readOSiL( osil);
7593 solver->
osil = osil;
7594 cout <<
"call the XPRESS Solver" << endl;
7602 cout << solver->
osrl << endl;
7604 cout <<
"XPRESS solver solution for parincQuadratic checks." << endl;
7607 { cout <<
"XPRESS solver solution for parincQuadratic in error:" << endl;
7608 cout << solver->
osrl << endl;
7610 if(ok ==
false)
throw ErrorClass(
" Fail unit test with XPRESS on parincQuadradic.osil");
7617 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.osil with XPRESS" << std::endl;
7618 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7622 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the XPRESS Solver:"
7623 << endl << eclass.errormsg<< endl;
7624 if (osilreader != NULL)
7630 if (fileUtil != NULL)
7638#ifdef COIN_HAS_IPOPT
7641 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver with avion2.osil" << endl << endl;
7648 cout <<
"create a new IPOPT Solver for OSiL string solution" << endl;
7652 osilFileName = dataDir +
"osilFiles" + dirsep +
"avion2.osil";
7653 osolFileName = dataDir +
"osolFiles" + dirsep +
"avion2_ipopt.osol";
7654 osil = fileUtil->getFileAsString( osilFileName.c_str());
7655 osol = fileUtil->getFileAsString( osolFileName.c_str());
7656 cout <<
"IPOPT Solver created for OSiL string solution" << endl;
7657 ipoptSolver->osol = osol;
7658 ipoptSolver->osinstance = osilreader->readOSiL( osil);
7659 ipoptSolver->osol = osol;
7660 cout <<
"call the IPOPT Solver" << endl;
7661 ipoptSolver->buildSolverInstance();
7662 ipoptSolver->solve();
7663 check = 9.46801e+07;
7669 cout << ipoptSolver->osrl << endl;
7671 cout <<
"IPOPT solver solution for avion2 checks." << endl;
7674 { cout <<
"IPOPT solver solution for avion2 in error:" << endl;
7675 cout << ipoptSolver->osrl << endl;
7677 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on avion2.osil");
7686 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem avion2.osil with Ipopt" << std::endl;
7687 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7692 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
7693 << endl << eclass.errormsg<< endl;
7694 if (osilreader != NULL)
7697 if (osolreader != NULL)
7700 if (ipoptSolver != NULL)
7703 if (fileUtil != NULL)
7708if(THOROUGH ==
true){
7711 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver with HS071_NLPMod.osil" << endl << endl;
7712 cout <<
"create a new IPOPT Solver for OSiL string solution" << endl;
7720 osilFileName = dataDir +
"osilFiles" + dirsep +
"HS071_NLPMod.osil";
7721 osolFileName = dataDir +
"osolFiles" + dirsep +
"HS071_NLPMod_ipopt.osol";
7722 osil = fileUtil->getFileAsString( osilFileName.c_str());
7723 osol = fileUtil->getFileAsString( osolFileName.c_str());
7724 cout <<
"IPOPT Solver created for OSiL string solution" << endl;
7726 ipoptSolver->osinstance = osilreader->readOSiL( osil);
7727 ipoptSolver->osoption = osolreader->
readOSoL( osol);
7728 ipoptSolver->osol = osol;
7729 ipoptSolver->buildSolverInstance();
7730 ipoptSolver->solve();
7731 cout <<
"Here is the IPOPT solver solution for HS071_NLP" << endl;
7738 cout << ipoptSolver->osrl << endl;
7740 cout <<
"IPOPT solver solution for HS071_NLP checks." << endl;
7743 { cout <<
"IPOPT solver solution for HS071_NLP in error:" << endl;
7744 cout << ipoptSolver->osrl << endl;
7754 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on HS071_NLP.osil");
7755 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem HS071.osil with Ipopt" << std::endl;
7756 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7760 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
7761 << endl << eclass.errormsg<< endl;
7762 if (osilreader != NULL)
7765 if (osolreader != NULL)
7768 if (ipoptSolver != NULL)
7771 if (fileUtil != NULL)
7779 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on rosenbrockmod.osil" << endl << endl;
7780 cout <<
"create a new IPOPT Solver for OSiL string solution" << endl;
7787 osilFileName = dataDir +
"osilFiles" + dirsep +
"rosenbrockmod.osil";
7788 osolFileName = dataDir +
"osolFiles" + dirsep +
"rosenbrockmod_ipopt.osol";
7789 osil = fileUtil->getFileAsString( osilFileName.c_str());
7790 osol = fileUtil->getFileAsString( osolFileName.c_str());
7791 cout <<
"IPOPT Solver created for OSiL string solution" << endl;
7792 ipoptSolver->osil = osil;
7793 ipoptSolver->osoption = osolreader->
readOSoL( osol);
7794 cout <<
"call the IPOPT Solver" << endl;
7795 ipoptSolver->buildSolverInstance();
7796 ipoptSolver->solve();
7803 cout << ipoptSolver->osrl << endl;
7805 cout <<
"Ipopt solver solution for rosenbrockmod checks." << endl;
7808 { cout <<
"Ipopt solver solution for rosenbrockmod in error:" << endl;
7809 cout << ipoptSolver->osrl << endl;
7812 throw ErrorClass(
" Fail unit test with Ipopt on rosenbrockmod.osil");
7821 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem rosenbrockmod.osil with Ipopt" << std::endl;
7822 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7827 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
7828 << endl << eclass.errormsg<< endl;
7829 if (osilreader != NULL)
7832 if (osolreader != NULL)
7835 if (ipoptSolver != NULL)
7838 if (fileUtil != NULL)
7846 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on parincQuadratic.osil" << endl << endl;
7847 cout <<
"create a new IPOPT Solver for OSiL string solution" << endl;
7854 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincQuadratic.osil";
7855 osolFileName = dataDir +
"osolFiles" + dirsep +
"parincQuadratic_ipopt.osol";
7856 osil = fileUtil->getFileAsString( osilFileName.c_str());
7857 osol = fileUtil->getFileAsString( osolFileName.c_str());
7858 cout <<
"IPOPT Solver created for OSiL string solution" << endl;
7859 ipoptSolver->osinstance = osilreader->readOSiL( osil);
7860 ipoptSolver->osil = osil;
7861 ipoptSolver->osol = osol;
7862 cout <<
"call the IPOPT Solver" << endl;
7863 ipoptSolver->buildSolverInstance();
7864 ipoptSolver->solve();
7871 cout << ipoptSolver->osrl << endl;
7873 cout <<
"IPOPT solver solution for parincQuadratic checks." << endl;
7876 { cout <<
"IPOPT solver solution for parincQuadratic in error:" << endl;
7877 cout << ipoptSolver->osrl << endl;
7879 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on parincQuadradic.osil");
7888 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.osil with Ipopt" << std::endl;
7889 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7893 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
7894 << endl << eclass.errormsg<< endl;
7895 if (osilreader != NULL)
7898 if (osolreader != NULL)
7901 if (ipoptSolver != NULL)
7904 if (fileUtil != NULL)
7912 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on parincLinear.osil" << endl << endl;
7913 cout <<
"create a new IPOPT Solver for OSiL string solution" << endl;
7920 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincLinear.osil";
7921 osolFileName = dataDir +
"osolFiles" + dirsep +
"parincLinear_ipopt.osol";
7922 osil = fileUtil->getFileAsString( osilFileName.c_str());
7923 osol = fileUtil->getFileAsString( osolFileName.c_str());
7924 cout <<
"IPOPT Solver created for OSiL string solution" << endl;
7925 ipoptSolver->osinstance = osilreader->readOSiL( osil);
7926 ipoptSolver->osoption = NULL;
7927 ipoptSolver->osol =
"";
7928 cout <<
"call the IPOPT Solver" << endl;
7929 ipoptSolver->buildSolverInstance();
7930 ipoptSolver->solve();
7937 cout << ipoptSolver->osrl << endl;
7939 cout <<
"IPOPT solver solution for parincLinear checks." << endl;
7942 { cout <<
"IPOPT solver solution for parincLinear in error:" << endl;
7943 cout << ipoptSolver->osrl << endl;
7945 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on parincLinear.osil");
7954 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincLinear.osil with Ipopt" << std::endl;
7955 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
7959 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
7960 << endl << eclass.errormsg<< endl;
7961 if (osilreader != NULL)
7964 if (osolreader != NULL)
7967 if (ipoptSolver != NULL)
7970 if (fileUtil != NULL)
7978 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on callBackTest.osil" << endl << endl;
7979 cout <<
"create a new IPOPT Solver for OSiL string solution" << endl;
7986 osilFileName = dataDir +
"osilFiles" + dirsep +
"callBackTest.osil";
7987 osolFileName = dataDir +
"osolFiles" + dirsep +
"callBackTest_ipopt.osol";
7988 osil = fileUtil->getFileAsString( osilFileName.c_str());
7989 osol = fileUtil->getFileAsString( osolFileName.c_str());
7990 cout <<
"IPOPT Solver created for OSiL string solution" << endl;
7991 ipoptSolver->osinstance = osilreader->readOSiL( osil);
7992 ipoptSolver->osoption = osolreader->
readOSoL( osol);
7993 ipoptSolver->osol = osol;
7994 cout <<
"call the IPOPT Solver" << endl;
7995 ipoptSolver->buildSolverInstance();
7996 ipoptSolver->solve();
7997 check = 1.00045e+06;
8003 cout << ipoptSolver->osrl << endl;
8005 cout <<
"IPOPT solver solution for callBackTest checks." << endl;
8008 { cout <<
"IPOPT solver solution for callBackTest in error:" << endl;
8009 cout << ipoptSolver->osrl << endl;
8011 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on callBackTest.osil");
8020 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem callBackTest.osil with Ipopt" << std::endl;
8021 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8025 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
8026 << endl << eclass.errormsg<< endl;
8027 if (osilreader != NULL)
8030 if (osolreader != NULL)
8033 if (ipoptSolver != NULL)
8036 if (fileUtil != NULL)
8044 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on callBackTestRowMajor.osil" << endl << endl;
8045 cout <<
"create a new IPOPT Solver for OSiL string solution" << endl;
8052 osilFileName = dataDir +
"osilFiles" + dirsep +
"callBackTestRowMajor.osil";
8053 osolFileName = dataDir +
"osolFiles" + dirsep +
"callBackTestRowMajor_ipopt.osol";
8054 osil = fileUtil->getFileAsString( osilFileName.c_str());
8055 osol = fileUtil->getFileAsString( osolFileName.c_str());
8056 cout <<
"IPOPT Solver created for OSiL string solution" << endl;
8057 ipoptSolver->osinstance = NULL;
8058 ipoptSolver->osoption = NULL;
8059 ipoptSolver->osil = osil;
8060 ipoptSolver->osol = osol;
8061 cout <<
"call the IPOPT Solver" << endl;
8063 ipoptSolver->solve();
8064 check = 1.00045e+06;
8070 cout << ipoptSolver->osrl << endl;
8072 cout <<
"IPOPT solver solution for callBackTestRowMajor checks." << endl;
8075 { cout <<
"IPOPT solver solution for callBackTestRowMajor in error:" << endl;
8076 cout << ipoptSolver->osrl << endl;
8078 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on callBackTestRowMajor.osil");
8087 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem callBackRowMajor.osil with Ipopt" << std::endl;
8088 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8092 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
8093 << endl << eclass.errormsg<< endl;
8094 if (osilreader != NULL)
8098 if (osolreader != NULL)
8101 if (ipoptSolver != NULL)
8104 if (fileUtil != NULL)
8110 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on rosenbrockorig.osil" << endl << endl;
8118 osilFileName = dataDir +
"osilFiles" + dirsep +
"rosenbrockorig.osil";
8120 osil = fileUtil->getFileAsString( osilFileName.c_str());
8123 ipoptSolver->sSolverName =
"ipopt";
8124 ipoptSolver->osil = osil;
8125 ipoptSolver->osol = osol;
8128 cout <<
"call the COIN - Ipopt Solver for rosenbrockorig" << endl;
8129 cout << endl << endl << osil << endl << endl;
8130 ipoptSolver->buildSolverInstance();
8132 cout << ipoptSolver->osinstance->printModel() << endl << endl;
8135 std::cout <<
" CALL SOLVE " << std::endl;
8136 ipoptSolver->solve();
8142 cout << ipoptSolver->osrl << endl;
8144 cout <<
"Ipopt solver solution for rosenbrockorig checks." << endl;
8147 { cout <<
"Ipopt solver solution for rosenbrockorig in error:" << endl;
8148 cout << ipoptSolver->osrl << endl;
8150 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on rosenbrockorig.osil");
8160 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem rosenbrockorig.osil with Ipopt" << std::endl;
8161 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8165 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
8166 << endl << eclass.errormsg<< endl;
8167 if (osilreader != NULL)
8170 if (osolreader != NULL)
8173 if (ipoptSolver != NULL)
8176 if (fileUtil != NULL)
8182 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on HS071_feas.osil" << endl << endl;
8188 osilFileName = dataDir +
"osilFiles" + dirsep +
"HS071_feas.osil";
8190 osil = fileUtil->getFileAsString( osilFileName.c_str());
8193 ipoptSolver->sSolverName =
"ipopt";
8194 ipoptSolver->osil = osil;
8195 ipoptSolver->osol = osol;
8198 ipoptSolver->buildSolverInstance();
8200 cout <<
"call the COIN - Ipopt Solver for HS071_feas.osil" << endl;
8201 ipoptSolver->solve();
8205 osresult = osrlreader->readOSrL(ipoptSolver->osrl);
8207 check = 3.162277659974328;
8209 check = 3.1622776613181367;
8211 check = 3.1622776594067235;
8213 check = 3.162277659974329;
8219 cout << ipoptSolver->osrl << endl;
8221 cout <<
"Ipopt feasible point for HS071_feas checks." << endl;
8224 { cout <<
"Ipopt feasible point for HS071_feas in error:" << endl;
8225 cout << ipoptSolver->osrl << endl;
8227 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on HS071_feas.osil");
8236 unitTestResult <<
"TEST " << nOfTest <<
": Correctly solved problem HS071_feas with Ipopt" << std::endl;
8237 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8241 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
8242 << endl << eclass.errormsg<< endl;
8243 if (osilreader != NULL)
8246 if (osolreader != NULL)
8249 if (osrlreader != NULL)
8252 if (ipoptSolver != NULL)
8255 if (fileUtil != NULL)
8261 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on HS071_no-obj.osil" << endl << endl;
8268 osilFileName = dataDir +
"osilFiles" + dirsep +
"HS071_no-obj.osil";
8269 osil = fileUtil->getFileAsString( osilFileName.c_str());
8271 ipoptSolver->sSolverName =
"ipopt";
8272 ipoptSolver->osil = osil;
8273 ipoptSolver->osol = osol;
8276 ipoptSolver->buildSolverInstance();
8278 cout <<
"call the COIN - Ipopt Solver for HS071_no-obj.osil" << endl;
8279 ipoptSolver->solve();
8283 ok = (ipoptSolver->osresult->getGeneralMessage() ==
8284 "Ipopt NEEDS AN OBJECTIVE FUNCTION\n(For pure feasibility problems, use zero function.)");
8286 { cout <<
"Ipopt solver returns:" << endl;
8287 cout << ipoptSolver->osrl << endl;
8288 throw ErrorClass(
" Fail unit test with Ipopt on HS071_no-obj.osil");
8292 cout <<
"Received error message from Ipopt: \"Ipopt NEEDS AN OBJECTIVE FUNCTION\"" << endl;
8299 unitTestResult <<
"TEST " << nOfTest <<
": Correctly diagnosed problem HS071_no-obj with Ipopt" << std::endl;
8300 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8304 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Ipopt Solver:"
8305 << endl << eclass.errormsg<< endl;
8306 if (osilreader != NULL)
8309 if (osolreader != NULL)
8312 if (ipoptSolver != NULL)
8315 if (fileUtil != NULL)
8325#ifdef COIN_HAS_BONMIN
8327 cout << endl <<
"TEST " << ++nOfTest <<
": Bonmin solver on bonminEx1.osil" << endl << endl;
8335 osilFileName = dataDir +
"osilFiles" + dirsep +
"bonminEx1.osil";
8336 osolFileName = dataDir +
"osolFiles" + dirsep +
"bonminEx1_Bonmin.osol";
8337 osil = fileUtil->getFileAsString( osilFileName.c_str());
8338 osol = fileUtil->getFileAsString( osolFileName.c_str());
8341 solver->
osil = osil;
8343 cout <<
"call the COIN - Bonmin Solver for bonminEx1" << endl;
8346 check = -17.07106795327683;
8352 cout << solver->
osrl << endl;
8354 cout <<
"Bonmin solver solution for bonminEx1 checks." << endl;
8357 { cout <<
"Bonmin solver solution for bonminEx1 in error:" << endl;
8358 cout << solver->
osrl << endl;
8360 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Bonmin on bonminEx1.osil");
8369 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem bonminEx1.osil with Bonmin" << std::endl;
8370 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8374 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Bonmin Solver:"
8375 << endl << eclass.errormsg << endl;
8379 if (osilreader != NULL)
8382 if (osolreader != NULL)
8385 if (fileUtil != NULL)
8390if (THOROUGH ==
true){
8392 cout << endl <<
"TEST " << ++nOfTest <<
": Bonmin solver on wayneQuadratic.osil" << endl << endl;
8399 osilFileName = dataDir +
"osilFiles" + dirsep +
"wayneQuadratic.osil";
8400 osolFileName = dataDir +
"osolFiles" + dirsep +
"wayneQuadratic_Bonmin1.osol";
8401 osil = fileUtil->getFileAsString( osilFileName.c_str());
8402 osol = fileUtil->getFileAsString( osolFileName.c_str());
8403 solver->
osol = osol;
8404 solver->
osinstance = osilreader->readOSiL( osil);
8405 cout <<
"call the Bonmin Solver for wayneQuadratic" << endl;
8415 cout << solver->
osrl << endl;
8417 cout <<
"Bonmin solver solution for wayneQuadratic checks." << endl;
8420 { cout <<
"Bonmin solver solution for wayneQuadratic in error:" << endl;
8421 cout << solver->
osrl << endl;
8423 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Bonmin on wayneQuadratic.osil");
8430 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem wayneQuadratic.osil with Bonmin" << std::endl;
8431 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8435 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Bonmin Solver:"
8436 << endl << eclass.errormsg << endl;
8440 if (osilreader != NULL)
8443 if (fileUtil != NULL)
8449 cout << endl <<
"TEST " << ++nOfTest <<
": Bonmin solver on wayneQuadratic.osil" << endl << endl;
8457 osilFileName = dataDir +
"osilFiles" + dirsep +
"wayneQuadratic.osil";
8458 osolFileName = dataDir +
"osolFiles" + dirsep +
"wayneQuadratic_Bonmin2.osol";
8459 osil = fileUtil->getFileAsString( osilFileName.c_str());
8460 osol = fileUtil->getFileAsString( osolFileName.c_str());
8461 solver->
osol = osol;
8462 solver->
osinstance = osilreader->readOSiL( osil);
8464 cout <<
"call the Bonmin Solver for wayneQuadratic" << endl;
8474 cout << solver->
osrl << endl;
8476 cout <<
"Bonmin solver solution for wayneQuadratic checks." << endl;
8479 { cout <<
"Bonmin solver solution for wayneQuadratic in error:" << endl;
8480 cout << solver->
osrl << endl;
8482 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Bonmin on wayneQuadratic.osil");
8491 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem wayneQuadratic.osil with Bonmin" << std::endl;
8492 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8496 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Bonmin Solver:"
8497 << endl << eclass.errormsg << endl;
8501 if (osilreader != NULL)
8504 if (osolreader != NULL)
8507 if (fileUtil != NULL)
8513 cout << endl <<
"TEST " << ++nOfTest <<
": Bonmin solver on rosenbrockorig.osil" << endl << endl;
8520 osilFileName = dataDir +
"osilFiles" + dirsep +
"rosenbrockorig.osil";
8521 osil = fileUtil->getFileAsString( osilFileName.c_str());
8523 solver->
osinstance = osilreader->readOSiL( osil);
8524 cout <<
"build solver instance" << endl;
8526 cout <<
"call the Bonmin Solver for rosenbrockorig" << endl;
8529 cout <<
"Verify solution" <<endl;
8535 cout << solver->
osrl << endl;
8537 cout <<
"Bonmin solver solution for rosenbrockorig checks." << endl;
8540 { cout <<
"Bonmin solver solution for rosenbrockorig in error:" << endl;
8541 cout << solver->
osrl << endl;
8543 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Bonmin on rosenbrockorig.osil");
8550 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem rosenbrockorig.osil with Bonmin" << std::endl;
8551 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8555 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Bonmin Solver:"
8556 << endl << eclass.errormsg << endl;
8560 if (osilreader != NULL)
8563 if (fileUtil != NULL)
8569 cout << endl <<
"TEST " << ++nOfTest <<
": Bonmin solver on rosenbrockorigInt.osil" << endl << endl;
8576 osilFileName = dataDir +
"osilFiles" + dirsep +
"rosenbrockorigInt.osil";
8577 osil = fileUtil->getFileAsString( osilFileName.c_str());
8579 solver->
osinstance = osilreader->readOSiL( osil);
8580 cout <<
"call the Bonmin Solver for rosenbrockinteger" << endl;
8588 cout << solver->
osrl << endl;
8590 cout <<
"Bonmin solver solution for rosenbrockorigInt checks." << endl;
8593 { cout <<
"Bonmin solver solution for rosenbrockorigInt in error:" << endl;
8594 cout << solver->
osrl << endl;
8596 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Bonmin on rosenbrockorigInt.osil");
8603 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem rosenbrockorigInt.osil with Bonmin" << std::endl;
8604 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8608 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Bonmin Solver:"
8609 << endl << eclass.errormsg << endl;
8613 if (osilreader != NULL)
8616 if (fileUtil != NULL)
8624#ifdef COIN_HAS_COUENNE
8627 cout << endl <<
"TEST " << ++nOfTest <<
": Couenne solver on bonminEx1.osil" << endl << endl;
8635 osilFileName = dataDir +
"osilFiles" + dirsep +
"bonminEx1.osil";
8636 osolFileName = dataDir +
"osolFiles" + dirsep +
"bonminEx1_Couenne.osol";
8637 osil = fileUtil->getFileAsString( osilFileName.c_str());
8638 osol = fileUtil->getFileAsString( osolFileName.c_str());
8640 solver->
osil = osil;
8641 solver->
osol = osol;
8642 cout <<
"call the COIN - Couenne Solver for bonminEx1" << endl;
8645 std::cout <<
" CALL SOLVE " << std::endl;
8648 check = -17.07106795327683;
8654 cout << solver->
osrl << endl;
8656 cout <<
"Couenne solver solution for bonminEx1 checks." << endl;
8659 { cout <<
"Couenne solver solution for bonminEx1 in error:" << endl;
8660 cout << solver->
osrl << endl;
8662 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Couenne on bonminEx1.osil");
8672 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem bonminEx1.osil with Couenne" << std::endl;
8673 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8677 cout <<
"OSrL = " << solver->
osrl << endl;
8678 cout << endl << endl << endl;
8679 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Couenne Solver:"
8680 << endl << eclass.errormsg << endl;
8684 if (osilreader != NULL)
8687 if (osolreader != NULL)
8690 if (fileUtil != NULL)
8695if( THOROUGH ==
true){
8697 cout << endl <<
"TEST " << ++nOfTest <<
": Couenne solver on bonminEx1_Nonlinear.osil" << endl << endl;
8705 osilFileName = dataDir +
"osilFiles" + dirsep +
"bonminEx1_Nonlinear.osil";
8707 osil = fileUtil->getFileAsString( osilFileName.c_str());
8710 solver->
osil = osil;
8711 solver->
osol = osol;
8715 cout <<
"call the COIN - Couenne Solver for bonminEx1_Nonlinear" << endl;
8718 std::cout <<
" CALL SOLVE " << std::endl;
8727 cout << solver->
osrl << endl;
8729 cout <<
"Couenne solver solution for bonminEx1_Nonlinear checks." << endl;
8732 { cout <<
"Couenne solver solution for bonminEx1_Nonlinear in error:" << endl;
8733 cout << solver->
osrl << endl;
8735 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Couenne on bonminEx1_Nonlinear.osil");
8745 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem bonminEx1_Nonlinear with Couenne" << std::endl;
8746 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8750 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Couenne Solver:"
8751 << endl << eclass.errormsg << endl;
8755 if (osilreader != NULL)
8758 if (osolreader != NULL)
8761 if (fileUtil != NULL)
8767 cout << endl <<
"TEST " << ++nOfTest <<
": Couenne solver on nonconvex.osil" << endl << endl;
8775 osilFileName = dataDir +
"osilFiles" + dirsep +
"nonconvex.osil";
8777 osil = fileUtil->getFileAsString( osilFileName.c_str());
8780 solver->
osil = osil;
8781 solver->
osol = osol;
8784 cout <<
"call the COIN - Couenne Solver for nonconvex.osil" << endl;
8787 std::cout <<
"CALL SOLVE" << std::endl;
8796 cout << solver->
osrl << endl;
8798 cout <<
"Couenne solver solution for nonconvex.osil checks." << endl;
8802 cout <<
"Couenne solver solution for nonconvex.osil in error:" << endl;
8803 cout << solver->
osrl << endl;
8805 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Couenne on nonconvex.osil");
8815 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem nonconvex.osil with Couenne" << std::endl;
8816 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8820 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Couenne Solver:"
8821 << endl << eclass.errormsg << endl;
8825 if (osilreader != NULL)
8828 if (osolreader != NULL)
8831 if (fileUtil != NULL)
8837 cout << endl <<
"TEST " << ++nOfTest <<
": Couenne solver on rosenbrockorig.osil" << endl << endl;
8845 osilFileName = dataDir +
"osilFiles" + dirsep +
"rosenbrockorig.osil";
8847 osil = fileUtil->getFileAsString( osilFileName.c_str());
8850 solver->
osil = osil;
8851 solver->
osol = osol;
8854 cout <<
"call the COIN - Couenne Solver for rosenbrockorig" << endl;
8857 std::cout <<
" CALL SOLVE " << std::endl;
8866 cout << solver->
osrl << endl;
8868 cout <<
"Couenne solver solution for rosenbrockorig checks." << endl;
8871 { cout <<
"Couenne solver solution for rosenbrockorig in error:" << endl;
8873 cout << solver->
osrl << endl;
8875 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Couenne on rosenbrockorig.osil");
8885 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem rosenbrockorig.osil with Couenne" << std::endl;
8886 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8890 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Couenne Solver:"
8891 << endl << eclass.errormsg << endl;
8895 if (osilreader != NULL)
8898 if (osolreader != NULL)
8901 if (fileUtil != NULL)
8907 cout << endl <<
"TEST " << ++nOfTest <<
": Couenne solver on wayneQuadratic.osil" << endl << endl;
8915 osilFileName = dataDir +
"osilFiles" + dirsep +
"wayneQuadratic.osil";
8918 osil = fileUtil->getFileAsString( osilFileName.c_str());
8922 solver->
osil = osil;
8923 solver->
osol = osol;
8926 cout <<
"call the COIN - Couenne Solver for wayneQuadraticr" << endl;
8928 std::cout <<
" CALL SOLVE " << std::endl;
8938 cout << solver->
osrl << endl;
8940 cout <<
"Couenne solver solution for wayneQuadratic checks." << endl;
8943 { cout <<
"Couenne solver solution for wayneQuadratic in error:" << endl;
8944 cout << solver->
osrl << endl;
8946 if(ok ==
false)
throw ErrorClass(
" Fail unit test with Couenne on wayneQuadratic.osil");
8956 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem wayneQuadratic.osil with Couenne (default settings)" << std::endl;
8957 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
8961 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Couenne Solver:"
8962 << endl << eclass.errormsg << endl;
8966 if (osilreader != NULL)
8969 if (osolreader != NULL)
8972 if (fileUtil != NULL)
8980 cout << endl <<
"TEST " << ++nOfTest <<
": Couenne solver on wayneQuadratic.osil" << endl << endl;
8988 osilFileName = dataDir +
"osilFiles" + dirsep +
"wayneQuadratic.osil";
8989 osolFileName = dataDir +
"osolFiles" + dirsep +
"wayneQuadratic_Couenne.osol";
8990 osil = fileUtil->getFileAsString( osilFileName.c_str());
8991 osol = fileUtil->getFileAsString( osolFileName.c_str());
8992 solver->
osil = osil;
8993 solver->
osol = osol;
8994 cout <<
"call the COIN - Couenne Solver for wayneQuadratic.osil" << endl;
8997 std::cout <<
" CALL SOLVE " << std::endl;
9000 cout <<
"Here is the Couenne solver solution for wayneQuadratic" << endl;
9003 solver->
osrl = tmp_writer->writeOSrL(solver->
osresult);
9007 string::size_type pos;
9008 pos = solver->
osrl.find(
"LIMIT_EXCEEDED[COUENNE]");
9009 if(pos == std::string::npos)
9011 cout << solver->
osrl << endl << endl;
9012 throw ErrorClass(
" Error with wayneQuadratic.osil running on Couenne (incorrect diagnostics)");
9017 cout << solver->
osrl << endl << endl;
9028 unitTestResult <<
"TEST " << nOfTest <<
": Correctly diagnosed wayneQuadratic.osil with Couenne (limit exceeded)" << std::endl;
9029 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9033 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Couenne Solver:"
9034 << endl << eclass.errormsg << endl;
9038 if (osilreader != NULL)
9041 if (osolreader != NULL)
9044 if (fileUtil != NULL)
9054 cout << endl <<
"TEST " << ++nOfTest <<
": CSDP solver on SDPA_ex.osil" << endl << endl;
9061 osilFileName = dataDir +
"osilFiles" + dirsep +
"SDPA_ex.osil";
9063 osil = fileUtil->getFileAsString( osilFileName.c_str());
9065 cout <<
"create a new Csdp Solver for OSiL string solution" << endl;
9066 solver->
osinstance = osilreader->readOSiL( osil);
9068 cout <<
"call the Csdp Solver" << endl;
9077 cout << solver->
osrl << endl;
9079 cout <<
"Csdp solver solution for SDPA_ex checks." << endl;
9082 { cout <<
"Csdp solver solution for SDPA_ex in error:" << endl;
9083 cout << solver->
osrl << endl;
9085 if(ok ==
false)
throw ErrorClass(
"Fail solving problem SDPA_ex.osil with Csdp");
9087 std::cout << std::endl <<
"now test matrix extensions to OSrL" << std::endl;
9093 std::cout << std::endl <<
"Read OSrL string" << std::endl;
9094 OSResult* osresult2 = osrlreader->readOSrL(solver->
osrl);
9098 std::cout << std::endl <<
"Write OSrL string" << std::endl;
9099 std::string osrl2 = osrlwriter2->writeOSrL( osresult2);
9100 OSResult* osresult3 = osrlreader2->readOSrL(osrl2);
9103 std::cout << std::endl << std::endl <<
"Here is osrl2: " << std::endl << std::endl;
9104 std::cout << osrl2 << std::endl;
9128 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem SDPA_ex.osil with Csdp" << std::endl;
9129 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9134 cout << endl << endl << endl;
9135 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Csdp Solver:"
9136 << endl << eclass.errormsg << endl << endl;
9140 if (osilreader != NULL)
9143 if (fileUtil != NULL)
9150#ifdef COIN_HAS_LINDO
9152 cout << endl <<
"TEST " << ++nOfTest <<
": Lindo solver on lindoapiaddins.osil" << endl << endl;
9159 osilFileName = dataDir +
"osilFiles" + dirsep +
"lindoapiaddins.osil";
9160 osolFileName = dataDir +
"osolFiles" + dirsep +
"lindoapiaddins_lindo.osol";
9161 osil = fileUtil->getFileAsString( osilFileName.c_str());
9162 osol = fileUtil->getFileAsString( osolFileName.c_str());
9163 cout <<
"create a new LINDO Solver for OSiL string solution" << endl;
9164 solver->
osinstance = osilreader->readOSiL( osil);
9165 solver->
osol = osol;
9166 cout <<
"call the LINDO Solver" << endl;
9175 cout << solver->
osrl << endl;
9177 cout <<
"LINDO solver solution for lindoapiaddins checks." << endl;
9180 { cout <<
"LINDO solver solution for lindoapiaddins in error:" << endl;
9181 cout << solver->
osrl << endl;
9183 if(ok ==
false)
throw ErrorClass(
" Fail unit test with LINDO on lindoapiaddins.osil");
9191 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem lindoapiaddins.osil with Lindo" << std::endl;
9192 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9197 cout << endl << endl << endl;
9198 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the LINDO Solver:"
9199 << endl << eclass.errormsg << endl << endl;
9203 if (osilreader != NULL)
9206 if (fileUtil != NULL)
9211if (THOROUGH ==
true){
9214 cout << endl <<
"TEST " << ++nOfTest <<
": Lindo solver on rosenbrockmod.osil" << endl << endl;
9219 osilFileName = dataDir +
"osilFiles" + dirsep +
"rosenbrockmod.osil";
9220 osolFileName = dataDir +
"osolFiles" + dirsep +
"rosenbrockmod_lindo.osol";
9221 osil = fileUtil->getFileAsString( osilFileName.c_str());
9222 osol = fileUtil->getFileAsString( osolFileName.c_str());
9223 solver->
osil = osil;
9224 solver->
osol = osol;
9226 cout <<
"call the LINDO Solver" << endl;
9235 cout << solver->
osrl << endl;
9237 cout <<
"LINDO solver solution for rosenbrockmod checks." << endl;
9240 { cout <<
"LINDO solver solution for rosenbrockmod in error:" << endl;
9241 cout << solver->
osrl << endl;
9243 if(ok ==
false)
throw ErrorClass(
" Fail unit test with LINDO on rosenbrockmod.osil");
9249 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem rosenbrockmod.osil with Lindo" << std::endl;
9250 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9254 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the Lindo Solver:"
9255 << endl << eclass.errormsg << endl;
9259 if (fileUtil != NULL)
9266 cout << endl <<
"TEST " << ++nOfTest <<
": Lindo solver on parincQuadratic.osil" << endl << endl;
9272 osilFileName = dataDir +
"osilFiles" + dirsep +
"parincQuadratic.osil";
9273 osolFileName = dataDir +
"osolFiles" + dirsep +
"parincQuadratic_lindo.osol";
9274 osil = fileUtil->getFileAsString( osilFileName.c_str());
9275 osol = fileUtil->getFileAsString( osolFileName.c_str());
9276 solver->
osil = osil;
9277 solver->
osol = osol;
9280 cout <<
"call the LINDO Solver" << endl;
9289 cout << solver->
osrl << endl;
9291 cout <<
"LINDO solver solution for parincQuadratic checks." << endl;
9294 { cout <<
"LINDO solver solution for parincQuadratic in error:" << endl;
9295 cout << solver->
osrl << endl;
9297 if(ok ==
false)
throw ErrorClass(
" Fail unit test with LINDO on parincQuadratic.osil");
9304 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.osil with Lindo" << std::endl;
9305 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9309 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the LINDO Solver:"
9310 << endl << eclass.errormsg << endl;
9314 if (osolreader != NULL)
9317 if (fileUtil != NULL)
9385 cout << endl <<
"TEST " << ++nOfTest <<
": Cbc solver using MPS file" << endl << endl;
9387 mpsFileName = dataDir +
"mpsFiles" + dirsep +
"parinc.mps";
9388 mps2osil =
new OSmps2OS( mpsFileName);
9394 cout <<
"create a COIN Solver for MPS - OSInstance solution" << endl;
9396 mps2osil->createOSObjects();
9398 osol =
"<osol></osol>";
9399 solver->
osol = osol;
9400 cout <<
"call COIN Solve" << endl;
9409 cout << solver->
osrl << endl;
9411 cout <<
"COIN solver solution for parinc.mps checks." << endl;
9414 { cout <<
"COIN solver solution for parinc.mps in error:" << endl;
9415 cout << solver->
osrl << endl;
9417 if(ok ==
false)
throw ErrorClass(
" Fail unit test with COIN Solver on MPS test problem parincLinear.mps");
9424 unitTestResult <<
"TEST " << nOfTest <<
": Test the MPS -> OSiL converter on parinc.mps using Cbc" << std::endl;
9425 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9429 cout <<
"OSrL = " << solver->
osrl << endl;
9430 cout << endl << endl << endl;
9431 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the MPS converter:"
9432 << endl << eclass.errormsg << endl;
9437 if (mps2osil != NULL)
9442#ifdef COIN_HAS_IPOPT
9446 cout << endl <<
"TEST " << ++nOfTest <<
": Ipopt solver on parincQuadratic.mps" << endl << endl;
9448 mpsFileName = dataDir +
"mpsFiles" + dirsep +
"parincQuadratic.mps";
9449 mps2osil =
new OSmps2OS( mpsFileName);
9455 cout <<
"create an IPOPT Solver for MPS - OSInstance solution" << endl;
9457 mps2osil->createOSObjects();
9460 osol =
"<osol></osol>";
9461 solver->
osol = osol;
9462 cout <<
"call the IPOPT Solver" << endl;
9472 cout << solver->
osrl << endl;
9474 cout <<
"IPOPT solver solution for parincQuadratic checks." << endl;
9478 cout <<
"IPOPT solver solution for parincQuadratic in error:" << endl;
9479 cout << solver->
osrl << endl;
9482 if (ok ==
false)
throw ErrorClass(
" Fail unit test with Ipopt on parincQuadratic.mps");
9487 unitTestResult <<
"TEST " << nOfTest <<
": Solved problem parincQuadratic.mps with Ipopt" << std::endl;
9488 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9492 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the quadratic MPS converter:"
9493 << endl << eclass.errormsg<< endl;
9497 if (mps2osil != NULL)
9507#ifdef COIN_HAS_GAMSUTILS
9510 std::cout <<
"Working with GAMSIO " << std::endl;
9513 std::string gmsControlFile = dataDir +
"gamsFiles" + dirsep +
"225a" + dirsep +
"gamscntr.dat";
9516 gams2osil->createOSInstance();
9517 std::cout << gams2osil->osinstance->printModel() << std::endl;
9518 std::cout <<
"Done Working with GAMSIO " << std::endl;
9524 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the GAMS interface:"
9525 << endl << eclass.errormsg << endl;
9527 if (gams2osil != NULL)
9537 cout << endl <<
"TEST " << ++nOfTest <<
": AMPL solver interface" << endl << endl;
9539 nlFileName = dataDir +
"amplFiles" + dirsep +
"parinc.nl";
9542 cw = ASL_alloc(ASL_read_fg);
9543 rw = ASL_alloc(ASL_read_fg);
9546 jac0dim((
char*)nlFileName.c_str(), (fint)strlen(nlFileName.c_str()));
9550 nl2osil->readNl(nlFileName) ;
9554 cout <<
"create a cbc Solver for AMPL nl - OSInstance solution" << endl;
9556 nl2osil->createOSObjects();
9558 solver->
osoption = nl2osil->osoption;
9566 cout <<
"call Cbc Solve" << endl;
9575 cout << solver->
osrl << endl;
9577 cout <<
"COIN cbc solver solution for parinc.nl checks." << endl;
9581 cout <<
"COIN cbc solver solution for parinc.nl in error:" << endl;
9582 cout << solver->
osrl << endl;
9583 throw ErrorClass(
" Fail unit test with OSnl2osil on problem parinc.nl");
9591 unitTestResult <<
"TEST " << nOfTest <<
": Test the AMPL nl -> OSiL converter on parinc.nl using Cbc" << std::endl;
9592 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
9596 cout <<
"OSrL = " << solver->
osrl << endl;
9597 cout << endl << endl << endl;
9598 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing the AMPL interface:"
9599 << endl << eclass.errormsg << endl;
9604 if (nl2osil != NULL)
9614 double *xval = NULL;
9615 double *zval = NULL;
9620 cout << endl <<
"TEST " << ++nOfTest <<
": AMPL suffix handler and solution writer" << endl << endl;
9622 nlFileName = dataDir +
"amplFiles" + dirsep +
"suffixTest.nl";
9625 cw = ASL_alloc(ASL_read_fg);
9626 rw = ASL_alloc(ASL_read_fg);
9629 jac0dim((
char*)nlFileName.c_str(), (fint)strlen(nlFileName.c_str()));
9631 nl2osil =
new OSnl2OS(cw, rw, asl);
9633 nl2osil->readNl(nlFileName);
9636 osolFileName = dataDir +
"osolFiles" + dirsep +
"suffixTest.osol";
9637 nl2osil->osol = fileUtil->getFileAsString( osolFileName.c_str());
9641 std::cout << std::endl <<
"Create OS objects" << std::endl << std::endl;
9643 nl2osil->createOSObjects();
9647 std::cout <<
"transfer suffix information from osol to osrl" << std::endl;
9649 int nVars = nl2osil->osinstance->getVariableNumber();
9650 int nObjs = nl2osil->osinstance->getObjectiveNumber();
9651 int nCons = nl2osil->osinstance->getConstraintNumber();
9660 xval =
new double[nVars];
9661 for (
int i=0; i < nVars; i++)
9664 zval =
new double[nCons];
9665 for (
int i=0; i < nCons; i++)
9669 throw ErrorClass(
" Fail setting primal variables in AMPL suffix handler");
9671 throw ErrorClass(
" Fail setting dual variables in AMPL suffix handler");
9681 IBS =
new int[nvar];
9683 throw ErrorClass(
" Fail basis retrieval in AMPL suffix handler");
9685 throw ErrorClass(
" Fail basis transfer in AMPL suffix handler");
9686 delete[] IBS; IBS = NULL;
9698 IBS =
new int[ncon];
9700 throw ErrorClass(
" Fail basis retrieval in AMPL suffix handler");
9702 throw ErrorClass(
" Fail basis transfer in AMPL suffix handler");
9703 delete[] IBS; IBS = NULL;
9709 int nOther = nl2osil->osoption->getNumberOfOtherVariableOptions();
9711 throw ErrorClass(
" Fail setting numberOfOtherVariableResults in AMPL suffix handler");
9712 for (
int i=0; i<nOther; i++)
9717 std::cout <<
"transfer variable suffix " << otherVar->
name << std::endl;
9721 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9723 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9725 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9727 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9729 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9731 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9733 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9735 throw ErrorClass(
" Fail setting OtherVariableResult in AMPL suffix handler");
9737 if (otherVar->var != NULL)
9739 for (
int j=0; j < otherVar->numberOfVar; j++)
9742 throw ErrorClass(
" Fail setting OtherVariableResult <var> array in AMPL suffix handler");
9744 throw ErrorClass(
" Fail setting OtherVariableResult <var> array in AMPL suffix handler");
9748 if (otherVar->enumeration != NULL)
9750 for (
int j=0; j < otherVar->numberOfEnumerations; j++)
9754 otherVar->enumeration[j]->value, otherVar->enumeration[j]->description,
9755 otherVar->enumeration[j]->el, otherVar->enumeration[j]->numberOfEl) )
9756 throw ErrorClass(
" Fail setting OtherVariableResult enumeration in AMPL suffix handler");
9763 std::cout <<
"add variable suffix morevarinteger" << std::endl;
9767 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9769 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9771 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9773 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9775 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9777 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9779 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9781 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9783 for (
int j=0; j < nVars; j++)
9788 throw ErrorClass(
" Fail setting OtherVariableResult <var> array in AMPL suffix handler");
9790 throw ErrorClass(
" Fail setting OtherVariableResult <var> array in AMPL suffix handler");
9797 std::cout <<
"add variable suffix with enumeration" << std::endl;
9801 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9803 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9805 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9807 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9809 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9811 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9813 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9815 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9822 0,
"11",
"First value", enumArray, 2) )
9823 throw ErrorClass(
" Fail adding OtherVariableResult enumeration in AMPL suffix handler");
9828 1,
"12",
"Last value",
9830 throw ErrorClass(
" Fail adding OtherVariableResult enumeration in AMPL suffix handler");
9834 std::cout <<
"add variable suffix with value only" << std::endl;
9838 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9840 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9842 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9844 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9846 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9848 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9850 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9852 throw ErrorClass(
" Fail adding OtherVariableResult in AMPL suffix handler");
9856 nOther = nl2osil->osoption->getNumberOfOtherConstraintOptions();
9858 throw ErrorClass(
" Fail setting numberOfOtherConstraintResults in AMPL suffix handler");
9859 for (
int i=0; i<nOther; i++)
9863 std::cout <<
"transfer constraint suffix " << otherCon->
name << std::endl;
9867 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9869 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9871 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9873 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9875 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9877 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9879 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9881 throw ErrorClass(
" Fail setting OtherConstraintResult in AMPL suffix handler");
9883 if (otherCon->con != NULL)
9885 for (
int j=0; j < otherCon->numberOfCon; j++)
9888 throw ErrorClass(
" Fail setting OtherConstraintResult <con> array in AMPL suffix handler");
9890 throw ErrorClass(
" Fail setting OtherConstraintResult <con> array in AMPL suffix handler");
9894 if (otherCon->enumeration != NULL)
9896 for (
int j=0; j < otherCon->numberOfEnumerations; j++)
9900 otherCon->enumeration[j]->value, otherCon->enumeration[j]->description,
9901 otherCon->enumeration[j]->el, otherCon->enumeration[j]->numberOfEl) )
9902 throw ErrorClass(
" Fail setting OtherConstraintResult enumeration in AMPL suffix handler");
9909 std::cout <<
"add variable suffix moreconinteger" << std::endl;
9913 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9915 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9917 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9919 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9921 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9923 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9925 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9927 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9929 for (
int j=0; j < nCons; j++)
9932 throw ErrorClass(
" Fail setting OtherConstraintResult <con> array in AMPL suffix handler");
9934 throw ErrorClass(
" Fail setting OtherConstraintResult <con> array in AMPL suffix handler");
9940 std::cout <<
"add constraint suffix with enumeration" << std::endl;
9944 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9946 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9948 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9950 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9952 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9954 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9956 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9958 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9963 0,
"21",
"First value", enumArray, 2) )
9964 throw ErrorClass(
" Fail adding OtherConstraintResult enumeration in AMPL suffix handler");
9969 1,
"22",
"Last value",
9971 throw ErrorClass(
" Fail adding OtherConstraintResult enumeration in AMPL suffix handler");
9975 std::cout <<
"add constraint suffix with value only" << std::endl;
9979 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9981 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9983 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9985 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9987 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9989 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9991 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9993 throw ErrorClass(
" Fail adding OtherConstraintResult in AMPL suffix handler");
9998 nOther = nl2osil->osoption->getNumberOfOtherObjectiveOptions();
10000 throw ErrorClass(
" Fail setting numberOfOtherVariableResults in AMPL suffix handler");
10001 for (
int i=0; i<nOther; i++)
10005 std::cout <<
"transfer objective suffix " << otherObj->
name << std::endl;
10009 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10011 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10013 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10015 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10017 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10019 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10021 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10023 throw ErrorClass(
" Fail setting OtherObjectiveResult in AMPL suffix handler");
10025 if (otherObj->obj != NULL)
10027 for (
int j=0; j < otherObj->numberOfObj; j++)
10030 throw ErrorClass(
" Fail setting OtherObjectiveResult <obj> array in AMPL suffix handler");
10032 throw ErrorClass(
" Fail setting OtherObjectiveResult <obj> array in AMPL suffix handler");
10036 if (otherObj->enumeration != NULL)
10038 for (
int j=0; j < otherObj->numberOfEnumerations; j++)
10042 otherObj->enumeration[j]->value, otherObj->enumeration[j]->description,
10043 otherObj->enumeration[j]->el, otherObj->enumeration[j]->numberOfEl) )
10044 throw ErrorClass(
" Fail setting OtherObjectiveResult enumeration in AMPL suffix handler");
10052 std::cout <<
"add variable suffix moreobjinteger" << std::endl;
10056 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10058 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10060 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10062 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10064 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10066 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10068 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10070 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10072 for (
int j=0; j < nObjs; j++)
10075 throw ErrorClass(
" Fail setting OtherObjectiveResult <obj> array in AMPL suffix handler");
10077 throw ErrorClass(
" Fail setting OtherObjectiveResult <obj> array in AMPL suffix handler");
10082 std::cout <<
"add objective suffix with enumeration" << std::endl;
10086 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10088 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10090 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10092 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10094 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10096 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10098 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10100 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10105 0,
"31",
"Only value",
10107 throw ErrorClass(
" Fail adding OtherObjectiveResult enumeration in AMPL suffix handler");
10111 std::cout <<
"add objective suffix with value only" << std::endl;
10115 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10117 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10119 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10121 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10123 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10125 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10127 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10129 throw ErrorClass(
" Fail adding OtherObjectiveResult in AMPL suffix handler");
10134 throw ErrorClass(
" Fail setting solution status in AMPL suffix handler");
10139 std::cout << std::endl <<
"convert OSResult to string" << std::endl << std::endl;
10143 std::string osrl = temp_writer->writeOSrL(
osresult);
10144 std::cout << osrl << std::endl;
10149 std::cout << std::endl <<
"write AMPL solution file" << std::endl << std::endl;
10151 writeOK = solWriter->writeSolFile(osrl, nl2osil->getASL(
"asl"), dataDir +
"amplFiles" + dirsep +
"suffixTest.sol");
10156 std::cout << std::endl <<
"compare results" << std::endl << std::endl;
10158 std::string osrl1FileName = dataDir +
"amplFiles" + dirsep +
"suffixTest.sol";
10159 std::string osrl2FileName = dataDir +
"amplFiles" + dirsep +
"suffixTest.cmp";
10162 std::string osrl1 = fileUtil->getFileAsString( osrl1FileName.c_str());
10163 std::string osrl2 = fileUtil->getFileAsString( osrl2FileName.c_str());
10165 if (osrl1 == osrl2)
10168 cout << osrl1 << endl;
10170 cout <<
"AMPL .sol file writer creates consistent output" << endl;
10174 cout <<
"AMPL .sol file writer creates incorrect output" << endl;
10175 cout << osrl1 << endl;
10176 throw ErrorClass(
" Fail unit test with AMPL .sol writer");
10196 delete temp_writer;
10197 temp_writer = NULL;
10199 unitTestResult <<
"TEST " << nOfTest <<
": Test the AMPL .sol writer" << std::endl;
10200 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
10204 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing AMPL .sol writer:"
10205 << endl << eclass.errormsg << endl;
10208 if (nl2osil != NULL)
10212 if (fileUtil != NULL)
10215 if (solWriter != NULL)
10218 if (temp_writer != NULL)
10219 delete temp_writer;
10220 temp_writer = NULL;
10240 cout << endl <<
"TEST " << ++nOfTest <<
": b64 operations" << endl << endl;
10242 mpsFileName = dataDir +
"mpsFiles" + dirsep +
"parinc.mps";
10243 mps2osil =
new OSmps2OS( mpsFileName);
10251 osol =
"<osol></osol>";
10252 solver->
osol = osol;
10253 mps2osil->createOSObjects();
10254 solver->
osil = osilwriter.writeOSiL( mps2osil->osinstance);
10258 cout << endl << endl;
10263 { cout <<
"COIN solution of an OSiL string in b64 format." << endl;
10265 cout << solver->
osrl << endl;
10270 cout <<
"COIN solution of a OSiL string in b64 format:" << endl;
10271 cout << solver->
osrl << endl;
10273 if(ok ==
false)
throw ErrorClass(
" Fail unit test with COIN Cbc Solver on b64 test problem parincLinear.mps");
10279 unitTestResult <<
"TEST " << nOfTest <<
": Test a problem written in b64 and then converted to OSInstance" << std::endl;
10280 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
10284 cout << endl << endl;
10285 cout << eclass.errormsg << endl << endl;
10286 cout <<
"OSrL = " << solver->
osrl << endl;
10287 cout << endl << endl << endl;
10288 unitTestResultFailure <<
"Test " << nOfTest <<
": Unit Test Failed Testing Use of Base 64" << endl;
10290 if (solver != NULL)
10293 if (mps2osil != NULL)
10301 cout << endl <<
"TEST " << ++nOfTest <<
": postfix and prefix routines" << endl << endl;
10306 std::string expTreeTest = dataDir +
"osilFiles" + dirsep +
"rosenbrockmod.osil";
10307 osil = fileUtil->getFileAsString( expTreeTest.c_str() ) ;
10309 osinstance = osilreader->readOSiL( osil);
10311 if(expTree == NULL)
throw ErrorClass(
" Null expression tree when testing prefix and postfix routines");
10312 std::vector<ExprNode*> postfixVec;
10316 unsigned int n = postfixVec.size();
10318 nodeNames1 =
new std::string[ n];
10319 nodeNames2 =
new std::string[ n];
10320 for (i = 0 ; i < n; i++){
10322 nodeNames1[i] = postfixVec[i]->getTokenName();
10326 expTree->m_treeRoot = ((
OSnLNode*)postfixVec[ n - 1])->createExpressionTreeFromPostfix( postfixVec);
10329 std::vector<ExprNode*> prefixVec;
10334 expTree->m_treeRoot = ((
OSnLNode*)prefixVec[ 0])->createExpressionTreeFromPrefix( prefixVec);
10337 postfixVec = expTree->m_treeRoot->getPostfixFromExpressionTree();
10339 if(postfixVec.size() != n)
throw ErrorClass(
" Problem with creating expression trees");
10341 for (i = 0 ; i < n; i++){
10343 nodeNames2[i] = postfixVec[i]->getTokenName();
10344 if( nodeNames1[i] != nodeNames2[ i])
throw ErrorClass(
" Problem with creating expression trees");
10347 delete[] nodeNames1;
10349 delete[] nodeNames2;
10355 unitTestResult <<
"TEST " << nOfTest <<
": Successful test of prefix and postfix conversion routines" << std::endl;
10356 cout << endl <<
"TEST " << nOfTest <<
": Completed successfully" << endl << endl;
10360 cout << endl << endl << endl;
10361 unitTestResultFailure <<
"Test " << nOfTest <<
": prefix and postfix conversion"
10362 << endl << eclass.errormsg << endl;
10363 if (osilreader != NULL)
10366 if (nodeNames1 != NULL)
10367 delete[] nodeNames1;
10369 if (nodeNames2 != NULL)
10370 delete[] nodeNames2;
10372 if (fileUtil != NULL)
10378 if(unitTestResultFailure.str().length() > 0){
10379 cout << endl <<
"THE UNIT TEST PASSED THE FOLLOWING:" << endl << endl;
10380 cout << unitTestResult.str() << endl << endl;
10381 cout <<
"UNFORTUNATELY, YOU FAILED ON THE FOLLOWING:" << endl << endl;
10382 cout << unitTestResultFailure.str() << endl << endl;
10383 cout <<
"Conclusion: FAILURE" << endl;
10387 cout << endl <<
"THE UNIT TEST PASSED THE FOLLOWING:" << endl << endl;
10388 cout << unitTestResult.str() << endl << endl;
10389 cout <<
"All tests completed successfully" << endl << endl;
10391 cout <<
"Make sure to #undef GUS_DEBUG before committing!!!" << endl << endl;