]> git.llucax.com Git - z.facultad/75.29/dale.git/blobdiff - tests/number.cpp
resta corregida + un par de asserts
[z.facultad/75.29/dale.git] / tests / number.cpp
index fc74c5501d832ac03fe3877850cac78f86c6eae2..3b9d1b591e0a428617532cdc597644741a55f21f 100644 (file)
@@ -4,7 +4,7 @@
 int main()
 {
 #if 0
-       unsigned buf[5] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0 };
+       unsigned long buf[5] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0 };
        //unsigned buf[3] = { 0xffffffff, 0x1, 0 };
        number<> nu(buf, 4);
        //number< unsigned > nu2(nu);
@@ -18,18 +18,25 @@ int main()
 
 #if 0
        number< unsigned > nu = 0xffffffff;
-       std::cout << "nu = " << nu << "\n\n";
+       std::cout << "nu = " << nu ;
 
        nu << 5;
-       std::cout << "nu = " << nu << "\n\n";
+       std::cout << "nu = " << nu ;
 
-       number<> n1 = 0x00000000;
-       number<> n2 = 0x00000000;
+       number<> n1 = 0xFFFFFFFF;
+       number<> n2 = 0xFFFFFFFF;
 
-       n2 += 1;
+       n1 += 1;
 
-       n1 <<= 1;
-       n2 <<= 1;
+/*     for (int k = 0; k < 100; k++)
+       {
+               n1 += (unsigned) rand() * k;
+               n2 += (unsigned) rand() * k;
+       }
+*/
+       
+//     n1 <<= 1;
+//     n2 <<= 1;
 
        if (n1 < n2)
                std::cout << "n1 es menor que n2\n";
@@ -54,12 +61,47 @@ int main()
        std::cout << "n1-n2: " << n1 ;
 #endif
 
+#if 1
        uint32_t buf[] = { 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
-       number<> nu(buf, 8);
+       number<> nu(buf, 8, negative);
        number<> nu2 = 0x2;
-       std::cout << "nu = " << nu << "\n\n";
-       std::cout << "nu2 = " << nu2 << "\n\n";
-       std::cout << "nu * nu2 = "  << naif(nu, nu2) << "\n\n";
+       std::cout << "nu = " << nu ;
+       std::cout << "\n";
+       std::cout << "nu2 = " << nu2 ;
+       std::cout << "\n";
+       std::cout << "nu * nu2 = "  << naif(nu, nu2) ;
+       std::cout << "\n";
+       std::cout << "nu + nu2 = "  << nu + nu2 ;
+       std::cout << "\n";
+       std::cout << "nu - nu2 = "  << nu - nu2 ;
+
+#endif
+
+       number<> h = 0x10000000;
+       h<<=1;
+       h += 0xfffffffc;
+       h<<=1;
+       h += 0xffffffff;
+       h<<=1;
+       h += 0x00000002;
+       number<> d = 0;
+       number<> m = 0xfffffffe;
+       m<<=1;
+       m += 0xffffffff;
+       m<<=1;
+       m += 0x00000001;
+
+       std::cout << "h: " << h ;
+       std::cout << "\n";
+       std::cout << "d: " << d ;
+       std::cout << "\n";
+       std::cout << "m: " << m ;
+       std::cout << "\n";
+
+       number<> a = h - d - m;
+
+       std::cout << "h-d-m: " << a ;
+
 
        return 0;
 }