diff --git a/tests/RadialIntegrationTest.cpp b/tests/RadialIntegrationTest.cpp index df382d23..1a816904 100644 --- a/tests/RadialIntegrationTest.cpp +++ b/tests/RadialIntegrationTest.cpp @@ -190,6 +190,30 @@ TEST_CASE("RadialIntegrationGPU_Process","[RadialIntegration]") { REQUIRE(image_analysis.GetRadialIntegrationSum()[1] == 6+2); } +TEST_CASE("RadialIntegrationGPU_Process_Corr","[RadialIntegration]") { + std::vector pixel_to_bin = {0,1,2,4,3,1,2,3}; + std::vector test_image = {7,6,5,4,3,2,1,0}; + std::vector one_byte_mask = {1,1,1,1,1,1,1,1}; + + std::vector corr = {0.5f, 0.3f, 0.5f, 0.2f, 0.8f, 0.9f, 1.0f, 0.5f}; + GPUImageAnalysis image_analysis(8, 1, one_byte_mask, pixel_to_bin, 4); + image_analysis.SetInputBuffer(test_image.data()); + image_analysis.LoadRadialIntegrationCorr(corr); + image_analysis.LoadDataToGPU(); + image_analysis.RunRadialIntegration(); + + REQUIRE(image_analysis.GetRadialIntegrationCount().size() == 4); + REQUIRE(image_analysis.GetRadialIntegrationSum().size() == 4); + + REQUIRE(image_analysis.GetRadialIntegrationCount()[0] == 1); + REQUIRE(image_analysis.GetRadialIntegrationCount()[1] == 2); + + REQUIRE(image_analysis.GetRadialIntegrationSum()[0] == Approx(7 * 0.5f)); + REQUIRE(image_analysis.GetRadialIntegrationSum()[1] == Approx(6*0.3f + 2*0.9f)); + REQUIRE(image_analysis.GetRadialIntegrationSum()[2] == Approx(5*0.5f + 1*1.0f)); + REQUIRE(image_analysis.GetRadialIntegrationSum()[3] == Approx(3*0.8f)); +} + TEST_CASE("RadialIntegrationGPU_Process_Mask","[RadialIntegration]") { std::vector pixel_to_bin = {0,1,2,4,3,1,2,3}; std::vector test_image = {7,6,5,4,3,2,1,0};