TEST(Median, cant_proc_matrix_when_one_or_more_arguments_are_incorrect) { unsigned char* incorrectData = NULL; MatrixProcessor proc; ASSERT_ANY_THROW(proc.doMedialProcessing(incorrectData, 1, 1, 1)); unsigned char* correctData = new unsigned char[4]; correctData[0] = 37; correctData[1] = 158; correctData[2] = 0; correctData[3] = 41; ASSERT_ANY_THROW(proc.doMedialProcessing(correctData, 1, 1, -1)); ASSERT_ANY_THROW(proc.doMedialProcessing(correctData, -1, 1, 40)); ASSERT_ANY_THROW(proc.doMedialProcessing(correctData, 1, -1, 40)); delete[]correctData; }
TEST(Median, can_process_matrix) { unsigned char a[20], exp[20]; // 23 17 182 1 // 57 255 3 0 // 7 11 1 1 // 180 200 1 100 // 13 25 101 50 a[0] = 23; a[1] = 17; a[2] = 182; a[3] = 1; a[4] = 57; a[5] = 255; a[6] = 3; a[7] = 0; a[8] = 7; a[9] = 11; a[10] = 1; a[11] = 1; a[12] = 180; a[13] = 200; a[14] = 1; a[15] = 100; a[16] = 13; a[17] = 25; a[18] = 101; a[19] = 50; size_t cov = 1; MatrixProcessor proc; ASSERT_NO_THROW(proc.doMedialProcessing(a, 4, 5, cov)); exp[0] = 57; exp[1] = 57; exp[2] = 17; exp[3] = 3; exp[4] = 23; exp[5] = 17; exp[6] = 3; exp[7] = 1; exp[8] = 180; exp[9] = 11; exp[10] = 3; exp[11] = 1; exp[12] = 25; exp[13] = 13; exp[14] = 25; exp[15] = 50; exp[16] = 180; exp[17] = 101; exp[18] = 100; exp[19] = 100; for (size_t i = 0; i < 20; i++) { EXPECT_EQ(exp[i], a[i]); } }
TEST(Median, dont_change_monotone_matrix) { unsigned char a[20]; for (size_t i = 0; i < 20; i++) { a[i] = 100; } MatrixProcessor proc; ASSERT_NO_THROW(proc.doMedialProcessing(a, 4, 5, 2)); for (size_t i = 0; i < 20; i++) { EXPECT_EQ(100, a[i]); } }
TEST(Median, works_when_cov_is_too_large){ unsigned char a[20]; // 23 17 182 1 // 57 255 3 0 // 7 11 1 1 // 180 200 1 100 // 13 25 101 50 a[0] = 23; a[1] = 17; a[2] = 182; a[3] = 1; a[4] = 57; a[5] = 255; a[6] = 3; a[7] = 0; a[8] = 7; a[9] = 11; a[10] = 1; a[11] = 1; a[12] = 180; a[13] = 200; a[14] = 1; a[15] = 100; a[16] = 13; a[17] = 25; a[18] = 101; a[19] = 50; MatrixProcessor proc; ASSERT_NO_THROW(proc.doMedialProcessing(a, 4, 5, 50)); for (size_t i = 0; i < 20; i++) { EXPECT_EQ(23, a[i]); } }