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 #include <mln/value/int_u8.hh>
00027 #include <tests/value/macros.hh>
00028 
00029 
00030 int main()
00031 {
00032   using namespace mln;
00033   using value::int_u8;
00034 
00035   int_u8 i = 3, j;
00036 
00037   {
00038     int k = 0;
00039     k += value::scalar(k);
00040   }
00041 
00042   
00043   {
00044     i = 51;
00045     mln_assertion(i == 51u);
00046     mln_assertion(-i == -51);
00047 
00048     i = 51u;
00049     mln_assertion(i == 51u);
00050 
00051     signed char c = 51;
00052     i = c;
00053     mln_assertion(i == 51u);
00054 
00055     j = i;
00056     mln_assertion(j == 51u);
00057 
00058     i = 3;
00059     sym_compare_assert(3.0f, ==, i);
00060     sym_compare_assert(i, !=, 2.99f);
00061 
00062     
00063     
00064     
00065     
00066     
00067   }
00068 
00069 
00070   
00071   {
00072     int_u8 i = 42;
00073     int_u8 j = 51;
00074 
00075     asym_compare_assert(i, <, j);
00076     asym_compare_assert(j, >, i);
00077     asym_compare_assert(i, <, 12345.f);
00078     asym_compare_assert(12345.f, >, i);
00079 
00080     sym_compare_assert(i, !=, j);
00081     sym_compare_assert(i, ==, 42.f);
00082     sym_compare_assert(42.f, ==, i);
00083     sym_compare_assert(i, !=, 69.f);
00084     sym_compare_assert(69.f, !=, i);
00085 
00086   }
00087 
00088   
00089   {
00090     test_operator(int_u8, +, 5, 1);
00091     test_interop(int_u8, int,  +, 5, -1);
00092     test_interop(int_u8, char,  +, 4, 2);
00093     test_interop(int_u8, unsigned char,  +, 4, 2);
00094 
00095     int_u8 i = 234;
00096 
00097     i++;
00098     sym_compare_assert(i, ==, 235.f);
00099 
00100     ++i;
00101     sym_compare_assert(i, ==, 236.f);
00102 
00103     i = +i;
00104     sym_compare_assert(i, ==, 236.f);
00105 
00106   }
00107 
00108   
00109   {
00110     test_operator(int_u8, -, 100, 5);
00111     test_interop(int_u8, int,  -, 100, 5);
00112     test_interop(int_u8, char,  -, 100, 5);
00113     test_interop(int_u8, unsigned char,  -, 5, 5);
00114 
00115     int_u8 c = 255;
00116     c -= c;
00117 
00118     sym_compare_assert(c, ==, 0.f);
00119 
00120     int_u8 i = 236;
00121 
00122     i--;
00123     sym_compare_assert(i, ==, 235.f);
00124 
00125     --i;
00126     sym_compare_assert(i, ==, 234.f);
00127 
00128     sym_compare_assert(-i, ==, -234.f);
00129 
00130     sym_compare_assert(i * -2, !=, 0.f);
00131     std::cout << (i) << " * -2 = "
00132               << (i * -2) << ' '
00133               << (-2 * i) << ' '
00134               << (-2 * int(i))
00135               << std::endl;
00136   }
00137 
00138   
00139   {
00140     test_operator(int_u8, *, 5, 1);
00141     test_interop(int_u8, int,  *, 5, 1);
00142     test_interop(int_u8, char,  *, 4, 2);
00143     test_interop(int_u8, unsigned char,  *, 4, 2);
00144 
00145     int_u8 c = 255;
00146 
00147     c *= 0;
00148     sym_compare_assert(c, ==, 0.f);
00149 
00150     i *= 2;
00151     int k;  k *= i;
00152 
00153     unsigned char d = 0;
00154     i *= d;
00155     sym_compare_assert(i, ==, 0.f);
00156 
00157     
00158     
00159     
00160     
00161 
00162   }
00163 
00164   
00165   {
00166     test_operator(int_u8, /, 5, 1);
00167     test_interop(int_u8, int,  /, 5, 1);
00168     test_interop(int_u8, char,  /, 4, 2);
00169     test_interop(int_u8, unsigned char,  /, 4, 2);
00170 
00171     int_u8 c = 200;
00172 
00173     c /= 1;
00174     sym_compare_assert(c, ==, 200.f);
00175     c /= 2;
00176     sym_compare_assert(c, ==, 100.f);
00177 
00178     int_u8 d = 2;
00179     c /= 2;
00180     sym_compare_assert(c, ==, 50.f);
00181 
00182     
00183     
00184     
00185     
00186   }
00187 
00188 
00189   
00190   {
00191     test_operator(int_u8, %, 5, 10);
00192     test_interop(int_u8, int,  %, 5, 10);
00193     test_interop(int_u8, char,  %, 4, 20);
00194     test_interop(int_u8, unsigned char,  %, 4, 20);
00195   }
00196 
00197 }