00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include "Util/log.H"
00039
00040 #include "Image/LevelSpec.H"
00041 #include "TestSuite/TestSuite.H"
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 static void LevelSpec_xx_maxIndex_xx_1(TestSuite& suite)
00055 {
00056 uint sml = 4, delta_min = 3, delta_max = 4, level_min = 2, level_max = 4;
00057
00058 LevelSpec spec(level_min, level_max, delta_min, delta_max, sml);
00059
00060 REQUIRE_EQ(spec.maxIndex(), uint(6));
00061 }
00062
00063 static void LevelSpec_xx_maxDepth_xx_1(TestSuite& suite)
00064 {
00065 uint sml = 4, delta_min = 3, delta_max = 4, level_min = 2, level_max = 4;
00066
00067 LevelSpec spec(level_min, level_max, delta_min, delta_max, sml);
00068
00069 REQUIRE_EQ(spec.maxDepth(), uint(9));
00070 }
00071
00072 static void LevelSpec_xx_clevOK_xx_1(TestSuite& suite)
00073 {
00074 uint sml = 4, delta_min = 3, delta_max = 4, level_min = 2, level_max = 4;
00075
00076 LevelSpec spec(level_min, level_max, delta_min, delta_max, sml);
00077
00078 REQUIRE(!spec.clevOK(1));
00079 REQUIRE(spec.clevOK(2));
00080 REQUIRE(spec.clevOK(3));
00081 REQUIRE(spec.clevOK(4));
00082 REQUIRE(!spec.clevOK(5));
00083 }
00084
00085 static void LevelSpec_xx_slevOK_xx_1(TestSuite& suite)
00086 {
00087 uint sml = 4, delta_min = 3, delta_max = 4, level_min = 2, level_max = 4;
00088
00089 LevelSpec spec(level_min, level_max, delta_min, delta_max, sml);
00090
00091 REQUIRE(!spec.slevOK(4));
00092 REQUIRE(spec.slevOK(5));
00093 REQUIRE(spec.slevOK(6));
00094 REQUIRE(spec.slevOK(7));
00095 REQUIRE(spec.slevOK(8));
00096 REQUIRE(!spec.slevOK(9));
00097 }
00098
00099 static void LevelSpec_xx_delOK_xx_1(TestSuite& suite)
00100 {
00101 uint sml = 4, delta_min = 3, delta_max = 4, level_min = 2, level_max = 4;
00102
00103 LevelSpec spec(level_min, level_max, delta_min, delta_max, sml);
00104
00105 REQUIRE(!spec.delOK(2));
00106 REQUIRE(spec.delOK(3));
00107 REQUIRE(spec.delOK(4));
00108 REQUIRE(!spec.delOK(5));
00109 }
00110
00111 static void LevelSpec_xx_csOK_xx_1(TestSuite& suite)
00112 {
00113 uint sml = 4, delta_min = 3, delta_max = 4, level_min = 2, level_max = 4;
00114
00115 LevelSpec spec(level_min, level_max, delta_min, delta_max, sml);
00116
00117 const bool n = false;
00118 const bool YY = true;
00119 bool expect_csok[10][10] =
00120 {
00121
00122
00123 {n, n, n, n, n, n, n, n, n, n},
00124 {n, n, n, n, n, n, n, n, n, n},
00125 {n, n, n, n, n, YY,YY,n, n, n},
00126 {n, n, n, n, n, n, YY,YY,n, n},
00127 {n, n, n, n, n, n, n, YY,YY,n},
00128 {n, n, n, n, n, n, n, n, n, n},
00129 {n, n, n, n, n, n, n, n, n, n},
00130 {n, n, n, n, n, n, n, n, n, n},
00131 {n, n, n, n, n, n, n, n, n, n},
00132 {n, n, n, n, n, n, n, n, n, n},
00133 };
00134
00135 for (uint c = 0; c < 10; ++c)
00136 for (uint s = 0; s < 10; ++s)
00137 REQUIRE_EQ(spec.csOK(c, s), expect_csok[c][s]);
00138 }
00139
00140 static void LevelSpec_xx_convert_xx_1(TestSuite& suite)
00141 {
00142 uint sml = 4, delta_min = 3, delta_max = 4, level_min = 2, level_max = 4;
00143
00144 LevelSpec spec(level_min, level_max, delta_min, delta_max, sml);
00145
00146 struct CSI { uint center; uint surround; uint index; };
00147
00148 CSI expect_csi[6] =
00149 {
00150 { 2, 5, 0 },
00151 { 3, 6, 1 },
00152 { 4, 7, 2 },
00153 { 2, 6, 3 },
00154 { 3, 7, 4 },
00155 { 4, 8, 5 },
00156 };
00157
00158 for (uint i = 0; i < 6; ++i)
00159 {
00160 REQUIRE_EQ(spec.csToIndex(expect_csi[i].center,
00161 expect_csi[i].surround),
00162 expect_csi[i].index);
00163
00164 uint c = 0, s = 0;
00165 spec.indexToCS(expect_csi[i].index, c, s);
00166 REQUIRE_EQ(c, expect_csi[i].center);
00167 REQUIRE_EQ(s, expect_csi[i].surround);
00168 }
00169 }
00170
00171
00172
00173
00174
00175
00176
00177 int main(int argc, const char** argv)
00178 {
00179 TestSuite suite;
00180
00181 suite.ADD_TEST(LevelSpec_xx_maxIndex_xx_1);
00182 suite.ADD_TEST(LevelSpec_xx_maxDepth_xx_1);
00183 suite.ADD_TEST(LevelSpec_xx_clevOK_xx_1);
00184 suite.ADD_TEST(LevelSpec_xx_slevOK_xx_1);
00185 suite.ADD_TEST(LevelSpec_xx_delOK_xx_1);
00186 suite.ADD_TEST(LevelSpec_xx_csOK_xx_1);
00187 suite.ADD_TEST(LevelSpec_xx_convert_xx_1);
00188
00189 suite.parseAndRun(argc, argv);
00190
00191 return 0;
00192 }
00193
00194
00195
00196
00197
00198