source: src/Fragmentation/Automation/unittests/MPQCCommandJobUnitTest.cpp@ 306f60

Action_Thermostats Add_AtomRandomPerturbation Add_FitFragmentPartialChargesAction Add_RotateAroundBondAction Add_SelectAtomByNameAction Added_ParseSaveFragmentResults AddingActions_SaveParseParticleParameters Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_ParticleName_to_Atom Adding_StructOpt_integration_tests AtomFragments Automaking_mpqc_open AutomationFragmentation_failures Candidate_v1.5.4 Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator CombiningParticlePotentialParsing Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_BoundInBox_CenterInBox_MoleculeActions Fix_ChargeSampling_PBC Fix_ChronosMutex Fix_FitPartialCharges Fix_FitPotential_needs_atomicnumbers Fix_ForceAnnealing Fix_IndependentFragmentGrids Fix_ParseParticles Fix_ParseParticles_split_forward_backward_Actions Fix_PopActions Fix_QtFragmentList_sorted_selection Fix_Restrictedkeyset_FragmentMolecule Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns Fix_fitting_potentials Fixes ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion FragmentAction_writes_AtomFragments FragmentMolecule_checks_bonddegrees GeometryObjects Gui_Fixes Gui_displays_atomic_force_velocity ImplicitCharges IndependentFragmentGrids IndependentFragmentGrids_IndividualZeroInstances IndependentFragmentGrids_IntegrationTest IndependentFragmentGrids_Sole_NN_Calculation JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix MoreRobust_FragmentAutomation ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PdbParser_setsAtomName PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks Rewrite_FitPartialCharges RotateToPrincipalAxisSystem_UndoRedo SaturateAtoms_findBestMatching SaturateAtoms_singleDegree StoppableMakroAction Subpackage_CodePatterns Subpackage_JobMarket Subpackage_LinearAlgebra Subpackage_levmar Subpackage_mpqc_open Subpackage_vmg Switchable_LogView ThirdParty_MPQC_rebuilt_buildsystem TrajectoryDependenant_MaxOrder TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps TremoloParser_setsAtomName Ubuntu_1604_changes stable
Last change on this file since 306f60 was 306f60, checked in by Frederik Heber <heber@…>, 13 years ago

Extended MPQCCommandJob's extractString to understand MP2 keywords.

  • Property mode set to 100644
File size: 3.3 KB
Line 
1/*
2 * Project: MoleCuilder
3 * Description: creates and alters molecular systems
4 * Copyright (C) 2012 University of Bonn. All rights reserved.
5 * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
6 */
7
8/*
9 * MPQCCommandJobUnitTest.cpp
10 *
11 * Created on: Feb 08, 2012
12 * Author: heber
13 */
14
15// include config.h
16#ifdef HAVE_CONFIG_H
17#include <config.h>
18#endif
19
20#include <cppunit/CompilerOutputter.h>
21#include <cppunit/extensions/TestFactoryRegistry.h>
22#include <cppunit/ui/text/TestRunner.h>
23
24// include headers that implement a archive in simple text format
25#include <boost/archive/text_oarchive.hpp>
26#include <boost/archive/text_iarchive.hpp>
27
28#include <vector>
29
30#include "MPQCCommandJobUnitTest.hpp"
31
32#include "Jobs/MPQCCommandJob.hpp"
33
34#include "CodePatterns/Assert.hpp"
35#include "CodePatterns/Log.hpp"
36
37#ifdef HAVE_TESTRUNNER
38#include "UnitTestMain.hpp"
39#endif /*HAVE_TESTRUNNER*/
40
41/********************************************** Test classes **************************************/
42
43const std::string resultstring="\
44\n\
45 HOMO is 5 A = -0.498625\n\
46 LUMO is 6 A = 0.251360\n\
47\n\
48 total scf energy = -75.5133625967\n\
49\n\
50 Memory used for integral intermediates: 56628 Bytes\n\
51\n\
52 10 -0.02171957 3 A 3 A -> 6 A 6 A (+-+-)\n\
53\n\
54 RHF energy [au]: -75.513362596662\n\
55 MP2 correlation energy [au]: -0.124136686358\n\
56 MP2 energy [au]: -75.637499283020\n\
57\n\
58 D1(MP2) = 0.01063314\n\
59\n\
60 CPHF: iter = 7 rms(P) = 0.0000000011 eps = 0.0000000100\n\
61\n\
62 Total MP2 gradient [au]:\n\
63 1 O 0.1100072224 0.0000000000 -0.0000000000\n\
64 2 H -0.0550036112 -0.0000000000 -0.1562140155\n\
65 3 H -0.0550036112 -0.0000000000 0.1562140155\n\
66\n\
67 Value of the MolecularEnergy: -75.6374992830\n\
68\n\
69";
70
71// Registers the fixture into the 'registry'
72CPPUNIT_TEST_SUITE_REGISTRATION( MPQCCommandJobTest );
73
74
75void MPQCCommandJobTest::setUp()
76{
77 // Throw assertions
78 ASSERT_DO(Assert::Throw);
79
80 setVerbosity(4);
81
82 job = new MPQCCommandJob(std::string("empty"), 1);
83}
84
85
86void MPQCCommandJobTest::tearDown()
87{
88 delete job;
89}
90
91/** UnitTest for extractString()
92 */
93void MPQCCommandJobTest::extractStringTest()
94{
95 // prepare result container
96 MPQCData data;
97 data.energy = -75.637499283020;
98 std::vector<double> force;
99 std::vector< std::vector<double> > forces;
100 // 1 O 0.1100072224 0.0000000000 -0.0000000000
101 force.push_back(0.1100072224);
102 force.push_back(0.0000000000);
103 force.push_back(-0.0000000000);
104 data.forces.push_back( force );
105 // 2 H -0.0550036112 -0.0000000000 -0.1562140155
106 force.clear();
107 force.push_back(-0.0550036112);
108 force.push_back(-0.0000000000);
109 force.push_back(-0.1562140155);
110 data.forces.push_back( force );
111 // 3 H -0.0550036112 -0.0000000000 0.1562140155
112 force.clear();
113 force.push_back(-0.0550036112);
114 force.push_back(-0.0000000000);
115 force.push_back(0.1562140155);
116 data.forces.push_back( force );
117
118 // extract and check
119 FragmentResult::ptr result = job->extractResult(resultstring);
120 std::stringstream returnstream(result->result);
121
122 // deserialize
123 MPQCData extractedData;
124 boost::archive::text_iarchive ia(returnstream);
125 ia >> extractedData;
126
127 CPPUNIT_ASSERT( data == extractedData );
128}
Note: See TracBrowser for help on using the repository browser.