]> 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 eeafe20408c7d23e66dd5f2da8c03e29816cd5d8..3b9d1b591e0a428617532cdc597644741a55f21f 100644 (file)
 int main()
 {
 #if 0
-       //unsigned buf[5] = { 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0 };
+       unsigned long buf[5] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0 };
        //unsigned buf[3] = { 0xffffffff, 0x1, 0 };
-       number< unsigned > nu = 0xffffffff;
+       number<> nu(buf, 4);
        //number< unsigned > nu2(nu);
-       number< unsigned > nu2 = 1u;
+       number<> nu2 = 2u;
        std::cout << "nu = " << nu << "\n\n";
        std::cout << "nu2 = "  << nu2 << "\n\n";
        std::cout << "nu + nu2 = "  << nu + nu2 << "\n\n";
+       std::cout << "nu * nu2 = "  << nu * nu2 << "\n\n";
+       std::cout << "nu^nu2 = "  << potencia(nu, nu2) << "\n\n";
 #endif
 
+#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 ;
 
-       return 0;
+       number<> n1 = 0xFFFFFFFF;
+       number<> n2 = 0xFFFFFFFF;
+
+       n1 += 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";
+       else if (n2 < n1)
+               std::cout << "n1 es mayor que n2\n";
+       else 
+               std::cout << "n1 es igual que n2\n";
+
+       std::cout << "\n";
+       
+
+//     for (int j=0; j<10; j++)
+//             n1.borrow(0);
+
+       std::cout << "n1: " << n1 ;
+       std::cout << "\n";
+       std::cout << "n2: " << n2 ;
+       std::cout << "\n";
+
+       n1 -= n2;
 
+       std::cout << "n1-n2: " << n1 ;
+#endif
+
+#if 1
+       uint32_t buf[] = { 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
+       number<> nu(buf, 8, negative);
+       number<> nu2 = 0x2;
+       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;
 }
+