Line data Source code
1 : #include "doctest/doctest.h" 2 : #include "NoiseGenerators.h" 3 : #include "VolumeDescriptor.h" 4 : #include "testHelpers.h" 5 : 6 : using namespace elsa; 7 : using namespace doctest; 8 : 9 : TEST_SUITE_BEGIN("generators"); 10 : 11 : TEST_CASE_TEMPLATE("Noise generators:", data_t, float, double) 12 6 : { 13 6 : GIVEN("A random data container") 14 6 : { 15 6 : auto [dc, mat] = 16 6 : generateRandomContainer<data_t>(VolumeDescriptor({32, 32}), DataHandlerType::CPU); 17 : 18 6 : WHEN("Adding no noise (NoNoiseGenerator)") 19 6 : { 20 2 : auto generator = NoNoiseGenerator{}; 21 2 : auto not_noisy = generator(dc); 22 : 23 2 : THEN("Nothing happens") { CHECK_UNARY(isCwiseApprox(dc, not_noisy)); } 24 2 : } 25 : 26 6 : WHEN("Adding Gaussian noise (GaussianNoiseGenerator)") 27 6 : { 28 2 : auto generator = GaussianNoiseGenerator{0, 0.25}; 29 2 : auto noisy = generator(dc); 30 : 31 : // TODO: Find a way to properly test this! 32 2 : THEN("Something happens") { CHECK_UNARY_FALSE(isCwiseApprox(dc, noisy)); } 33 2 : } 34 : 35 6 : WHEN("Adding Poisson noise (PoissonNoiseGenerator)") 36 6 : { 37 2 : auto generator = PoissonNoiseGenerator{0}; 38 2 : auto noisy = generator(dc); 39 : 40 : // TODO: Find a way to properly test this! 41 2 : THEN("Something happens") { CHECK_UNARY_FALSE(isCwiseApprox(dc, noisy)); } 42 2 : } 43 6 : } 44 6 : } 45 : 46 : TEST_SUITE_END();