source: LinearAlgebra/src/unittests/VectorSetUnitTest.cpp@ dd067a

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 dd067a was e23075, checked in by Frederik Heber <heber@…>, 13 years ago

Added new VectorSetUnitTest.

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/*
2 * Project: MoleCuilder
3 * Description: creates and alters molecular systems
4 * Copyright (C) 2010 University of Bonn. All rights reserved.
5 * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
6 */
7
8/*
9 * VectorSetUnitTest.cpp
10 *
11 * Created on: Jan 06, 2012
12 * Author: heber
13 */
14
15// include config.h
16#ifdef HAVE_CONFIG_H
17#include <config.h>
18#endif
19
20using namespace std;
21
22#include <cppunit/CompilerOutputter.h>
23#include <cppunit/extensions/TestFactoryRegistry.h>
24#include <cppunit/ui/text/TestRunner.h>
25
26#include "VectorSetUnitTest.hpp"
27
28#ifdef HAVE_TESTRUNNER
29#include "UnitTestMain.hpp"
30#endif /*HAVE_TESTRUNNER*/
31
32#include <iostream>
33
34/********************************************** Test classes **************************************/
35
36// Registers the fixture into the 'registry'
37CPPUNIT_TEST_SUITE_REGISTRATION( VectorSetTest );
38
39
40void VectorSetTest::setUp()
41{
42 list.push_back(Vector(0.,0.,0.));
43 list.push_back(Vector(1.,0.,0.));
44 list.push_back(Vector(0.,1.,0.));
45 list.push_back(Vector(0.,1.,1.));
46 list.push_back(Vector(2.,1.,0.));
47 list.push_back(Vector(1.,2.,3.));
48
49 CPPUNIT_ASSERT_EQUAL( (size_t)6, list.size() );
50}
51
52
53void VectorSetTest::tearDown()
54{
55 list.clear();
56}
57
58/** UnitTest for translate()
59 */
60void VectorSetTest::translateTest()
61{
62 VECTORSET(std::vector) worklist(list);
63 Vector translater(1.,0.,0.);
64 worklist.translate(translater);
65 VECTORSET(std::vector)::const_iterator iter = list.begin();
66 VECTORSET(std::vector)::const_iterator workiter = worklist.begin();
67 for (;(iter != list.end()) && (workiter != worklist.end()); ++iter, ++workiter)
68 CPPUNIT_ASSERT( ((*iter)+(translater)) == (*workiter) );
69}
70
71/** UnitTest for minDistance()
72 */
73void VectorSetTest::minDistanceTest()
74{
75 {
76 VECTORSET(std::vector) somelist;
77 for (double x=1.;x<6.;++x)
78 somelist.push_back(Vector(x,0.,0.));
79 Vector center(0.,0.,0.);
80 Vector mindist = somelist.minDistance(center);
81 CPPUNIT_ASSERT_EQUAL (Vector(1., 0., 0.), mindist);
82 }
83 {
84 Vector center(5.,0.,0.);
85 Vector mindist = list.minDistance(center);
86 CPPUNIT_ASSERT_EQUAL (Vector(2., 1., 0.)-center, mindist);
87 }
88 {
89 for (VECTORSET(std::vector)::const_iterator iter = list.begin();
90 iter != list.end(); ++iter) {
91 Vector mindist = list.minDistance(*iter);
92 CPPUNIT_ASSERT_EQUAL( Vector(0.,0.,0.), mindist );
93 }
94 }
95}
96
97/** UnitTest for minDistance()
98 */
99void VectorSetTest::minDistSquaredTest()
100{
101 {
102 Vector center(5.,0.,0.);
103 double mindist = list.minDistSquared(center);
104 double check = Vector(2., 1., 0.).DistanceSquared(center);
105 CPPUNIT_ASSERT_EQUAL( check, mindist );
106 }
107 {
108 for (VECTORSET(std::vector)::const_iterator iter = list.begin();
109 iter != list.end(); ++iter) {
110 double mindist = list.minDistSquared(*iter);
111 CPPUNIT_ASSERT_EQUAL( 0., mindist );
112 }
113 }
114}
Note: See TracBrowser for help on using the repository browser.