Ignore:
Timestamp:
Feb 25, 2013, 5:28:58 PM (12 years ago)
Author:
Frederik Heber <heber@…>
Branches:
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
Children:
1f3b2a
Parents:
d94e7e
git-author:
Frederik Heber <heber@…> (11/26/12 22:23:13)
git-committer:
Frederik Heber <heber@…> (02/25/13 17:28:58)
Message:

FunctionArgument now contains charges, too, and rewrote Extractors accordingly.

  • gatherDistancesFromFragment is now what we mostly want: Returns exactly the arguments in the way we specify.
  • PairPotential_AngleUnitTest now has gives additional types to potential's cstor.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/FunctionApproximation/unittests/ExtractorsUnitTest.cpp

    rd94e7e r691be4  
    8484  }
    8585
     86  // create charges
     87  Fragment::charges_t charges;
     88  charges += 6., 6., 1., 1., 1.;
     89
    8690  // create distances
    8791  FunctionModel::arguments_t args =
    88       Extractors::gatherAllDistanceArguments(positions, 0);
     92      Extractors::gatherAllDistanceArguments(positions, charges, 0);
    8993  CPPUNIT_ASSERT_EQUAL( (size_t)(5*4), args.size() );
    9094
     
    9498}
    9599
    96 /** UnitTest for gatherPositionOfTuples()
     100/** UnitTest for gatherPositionsFromFragment()
    97101 */
    98 void ExtractorsTest::gatherPositionOfTuplesTest()
     102void ExtractorsTest::gatherPositionsFromFragmentTest()
    99103{
    100104  // create positions
     
    110114  charges += 6., 6., 1., 1., 1.;
    111115
    112   // create Fragment
    113   Fragment fragment(positions, charges);
     116  {
     117    // extract carbon pairs
     118    Fragment::charges_t carbonpair;
     119    carbonpair += 6.,6.;
     120    Fragment::positions_t filtered_positions =
     121        Extractors::gatherPositionsFromFragment(positions, charges, carbonpair);
     122    CPPUNIT_ASSERT_EQUAL( (size_t)2, filtered_positions.size() );
     123  }
     124
     125  {
     126    // extract hydrogen triple
     127    Fragment::charges_t hydrogentriple;
     128    hydrogentriple += 1.,1.,1.;
     129    Fragment::positions_t filtered_positions =
     130        Extractors::gatherPositionsFromFragment(positions, charges, hydrogentriple);
     131    CPPUNIT_ASSERT_EQUAL( (size_t)3, filtered_positions.size() );
     132  }
     133}
     134
     135/** UnitTest for gatherDistancesFromFragment()
     136 */
     137void ExtractorsTest::gatherDistancesFromFragmentTest()
     138{
     139  // create positions
     140  Fragment::positions_t positions;
     141  Fragment::position_t pos(3, 0.);
     142  for (double i = 0; i < 5; i+=1.) {
     143    pos[0] = i;
     144    positions.push_back(pos);
     145  }
     146
     147  // create charges
     148  Fragment::charges_t charges;
     149  charges += 6., 6., 1., 1., 1.;
    114150
    115151  {
     
    118154    carbonpair += 6.,6.;
    119155    FunctionModel::arguments_t args =
    120         Extractors::gatherAllSymmetricDistanceArguments(
    121             Extractors::gatherPositionOfTuples(fragment, carbonpair),
    122             0
    123         );
     156        Extractors::gatherDistancesFromFragment(positions, charges, carbonpair, 0);
    124157    CPPUNIT_ASSERT_EQUAL( (size_t)1, args.size() );
    125     CPPUNIT_ASSERT_EQUAL( 1., args[0].distance );
    126158  }
    127159
     
    131163    hydrogentriple += 1.,1.,1.;
    132164    FunctionModel::arguments_t args =
    133         Extractors::reorderArgumentsByIncreasingDistance(
    134             Extractors::gatherAllSymmetricDistanceArguments(
    135                 Extractors::gatherPositionOfTuples(fragment, hydrogentriple),
    136                 0
    137             )
    138         );
     165        Extractors::gatherDistancesFromFragment(positions, charges, hydrogentriple, 0);
    139166    CPPUNIT_ASSERT_EQUAL( (size_t)3, args.size() );
    140     CPPUNIT_ASSERT_EQUAL( 1., args[0].distance );
    141     CPPUNIT_ASSERT_EQUAL( 1., args[1].distance );
    142     CPPUNIT_ASSERT_EQUAL( 2., args[2].distance );
    143167  }
    144168}
Note: See TracChangeset for help on using the changeset viewer.