286 stat |= fileNotThere <E, RandBinomial>();
287 stat |= fileNotThere <E, RandBit>();
288 stat |= fileNotThere <E, RandBreitWigner>();
289 stat |= fileNotThere <E, RandChiSquare>();
290 stat |= fileNotThere <E, RandExponential>();
291 stat |= fileNotThere <E, RandFlat>();
292 stat |= fileNotThere <E, RandGamma>();
293 stat |= fileNotThere <E, RandGauss>();
294 stat |= fileNotThere <E, RandGaussQ>();
295 stat |= fileNotThere <E, RandGaussT>();
296 stat |= fileNotThere <E, RandLandau>();
297 stat |= fileNotThere <E, RandPoisson>();
298 stat |= fileNotThere <E, RandPoissonQ>();
299 stat |= fileNotThere <E, RandPoissonT>();
300 stat |= fileNotThere <E, RandSkewNormal>();
301 stat |= fileNotThere <E, RandStudentT>();
307 stat |= fileNotThereEngine<DRand48Engine>();
308 stat |= fileNotThereEngine<DualRand>();
309 stat |= fileNotThereEngine<Hurd160Engine>();
310 stat |= fileNotThereEngine<Hurd288Engine>();
311 stat |= fileNotThereEngine<HepJamesRandom>();
312 stat |= fileNotThereEngine<MTwistEngine>();
313 stat |= fileNotThereEngine<RandEngine>();
314 stat |= fileNotThereEngine<RanecuEngine>();
315 stat |= fileNotThereEngine<Ranlux64Engine>();
316 stat |= fileNotThereEngine<RanluxEngine>();
317 stat |= fileNotThereEngine<RanshiEngine>();
318 stat |= fileNotThereEngine<TripleRand>();
352 for (
int i=0; i<3; i++) r += D::shoot();
353 D::saveEngineStatus();
356 double keyValue = D::shoot();
359 D::restoreEngineStatus(filename);
360 if (!
equals(D::shoot(), keyValue)) {
361 std::cout <<
"???? Value mismatch from file " << filename <<
"\n";
363 output <<
"???? Value mismatch from file " << filename <<
"\n";
369 D::restoreEngineStatus();
370 if (!
equals(D::shoot(),keyValue)) {
371 std::cout <<
"???? Value mismatch from new-format file \n";
373 output <<
"???? Value mismatch from new-format file \n";
378 D::setTheEngine(old);
390#ifdef TEST_ORIGINAL_SAVE
391 output <<
"=====================================\n";
393 output <<
"Original tests of static save/restore\n";
394 output <<
"=====================================\n\n";
396 output <<
"Using old method or HepRandom::saveEngineStatus:\n";
397 output <<
"All these tests should have a chance of failure.\n";
399 output << RandGauss:: getTheEngine()->name();
400 output << RandGaussQ::getTheEngine()->name();
407 output <<
"Using the class-specific RandGauss::saveEngineStatus:\n";
408 output <<
"All these tests should work properly.\n";
416#ifdef TEST_MISSING_FILES
417 output <<
"\n=======================================\n";
419 output <<
"Test of behavior when a file is missing \n";
420 output <<
"=======================================\n\n";
422 output <<
"Testing restoreEngineStatus with missing file:\n";
423 output <<
"Expect a number of <Failure to find or open> messages!\n";
427#ifdef CREATE_OLD_SAVES
428 stat |= saveEngine<DRand48Engine, RandPoisson>(
"DRand48Engine.oldsav");
429 stat |= saveEngine<DualRand, RandPoisson>(
"DualRand.oldsav");
430 stat |= saveEngine<Hurd160Engine, RandPoisson>(
"Hurd160Engine.oldsav");
431 stat |= saveEngine<Hurd288Engine, RandPoisson>(
"Hurd288Engine.oldsav");
432 stat |= saveEngine<HepJamesRandom,RandPoisson>(
"HepJamesRandom.oldsav");
433 stat |= saveEngine<MTwistEngine, RandPoisson>(
"MTwistEngine.oldsav");
434 stat |= saveEngine<RanecuEngine, RandPoisson>(
"RanecuEngine.oldsav");
435 stat |= saveEngine<Ranlux64Engine,RandPoisson>(
"Ranlux64Engine.oldsav");
436 stat |= saveEngine<RanluxEngine, RandPoisson>(
"RanluxEngine.oldsav");
437 stat |= saveEngine<RanshiEngine, RandPoisson>(
"RanshiEngine.oldsav");
438 stat |= saveEngine<TripleRand, RandPoisson>(
"TripleRand.oldsav");
441#ifdef VERIFY_OLD_SAVES
442 output <<
"\n==============================================\n";
444 output <<
" Verification that changes wont invalidate \n";
445 output <<
"invalidate engine saves from previous versions \n";
446 output <<
"==============================================\n\n";
448 stat |= checkSaveEngine<DRand48Engine, RandPoisson>(
"DRand48Engine.oldsav");
449 stat |= checkSaveEngine<DualRand, RandPoisson>(
"DualRand.oldsav");
450 stat |= checkSaveEngine<Hurd160Engine, RandPoisson>(
"Hurd160Engine.oldsav");
451 stat |= checkSaveEngine<Hurd288Engine, RandPoisson>(
"Hurd288Engine.oldsav");
452 stat |= checkSaveEngine<HepJamesRandom,RandPoisson>(
"HepJamesRandom.oldsav");
453 stat |= checkSaveEngine<MTwistEngine, RandPoisson>(
"MTwistEngine.oldsav");
454 stat |= checkSaveEngine<Ranlux64Engine,RandPoisson>(
"Ranlux64Engine.oldsav");
455 stat |= checkSaveEngine<RanluxEngine, RandPoisson>(
"RanluxEngine.oldsav");
456 stat |= checkSaveEngine<RanshiEngine, RandPoisson>(
"RanshiEngine.oldsav");
457 stat |= checkSaveEngine<TripleRand, RandPoisson>(
"TripleRand.oldsav");
458 stat |= checkSaveEngine<RanecuEngine, RandPoisson>(
"RanecuEngine.oldsav");
461 output <<
"\n=============================================\n\n";
464 std::cout <<
"One or more problems detected: stat = " << stat <<
"\n";
465 output <<
"One or more problems detected: stat = " << stat <<
"\n";
467 output <<
"testSaveEngineStatus passed with no problems detected.\n";
470 if (stat == 0)
return 0;
471 if (stat > 0)
return -(stat|1);