Skip to content

Commit

Permalink
added a new test for custom perturbation functions
Browse files Browse the repository at this point in the history
  • Loading branch information
josura committed Aug 8, 2024
1 parent bdbb07b commit 6fb6b64
Showing 1 changed file with 30 additions and 1 deletion.
31 changes: 30 additions & 1 deletion src/ComputationTestingPerturbation.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
#include "ConservationModel.h"
#include "DissipationModel.h"
#include "DissipationModelScaled.h"
#include "PropagationModel.hxx"
#include "PropagationModelOriginal.hxx"
#include "PropagationModelNeighbors.hxx"
#include "WeightedEdgeGraph.h"
#include "Matrix.h"
#include "utilities.h"

Expand Down Expand Up @@ -51,6 +55,11 @@ class ComputationTestingPerturbation : public ::testing::Test {

ConservationModel* cms = new ConservationModel( [](double x){return 0;} );
ConservationModel* cms2 = new ConservationModel(); //default constructor uses the functions that returns 0.5 for every iteration

WeightedEdgeGraph* graph = new WeightedEdgeGraph(_W);

PropagationModel* pmsNeighbors = new PropagationModelNeighbors(graph);


};

Expand All @@ -63,14 +72,34 @@ TEST_F(ComputationTestingPerturbation, computePerturbationIsCorrectNoDissipation
computationTest.setDissipationModel(dms);
computationTest.setConservationModel(cms);
std::vector<double> result = computationTest.computeAugmentedPerturbationEnhanced2(0,false);
//std::vector<double> result = computationTest.computeAugmentedPerturbationEnhanced4(0,false);
std::vector<double> expected{3.256667,2.736364,2.924242,5.593939,0,0,1.303030,2.796970};
ASSERT_EQ(result.size(),expected.size());
for (uint i = 0; i < expected.size() ; i++) {
EXPECT_NEAR(result[i],expected[i],1e-4);
}
}

TEST_F(ComputationTestingPerturbation, computePerturbationIsCorrectNoDissipationNoConservationOriginalPropagationNoSaturation) {
Computation computationTest;
computationTest.assign(*c1);
computationTest.augmentGraphNoComputeInverse(types);
computationTest.addEdges(virtualInputEdges,virtualInputEdgesValues);
computationTest.addEdges(virtualOutputEdges,virtualOutputEdgesValues);
computationTest.setDissipationModel(dms);
computationTest.setConservationModel(cms);

WeightedEdgeGraph* currentGraph = computationTest.getAugmentedGraph();
PropagationModel* pmsOriginal = new PropagationModelOriginal(currentGraph);

computationTest.setPropagationModel(pmsOriginal);
std::vector<double> result = computationTest.computeAugmentedPerturbationEnhanced4(0,false);
std::vector<double> expected{1.6283333333333301,1.3681818181818173,1.4621212121212099,2.7969696969696951,0,0,0.65151515151515138,1.3984848484848476};
ASSERT_EQ(result.size(),expected.size());
for (uint i = 0; i < expected.size() ; i++) {
EXPECT_NEAR(result[i],expected[i],1e-4);
}
}

TEST_F(ComputationTestingPerturbation, computePerturbationIsCorrectNoDissipationNoConservationDefaultSaturationSingle) {
Computation computationTest;
computationTest.assign(*c1);
Expand Down

0 comments on commit 6fb6b64

Please sign in to comment.