[gcalctool] Updated unit tests



commit bbafc6a44c0670eb71570f1d0afeb95e9f0e1ec2
Author: Robert Ancell <robert ancell gmail com>
Date:   Mon Jul 27 10:31:33 2009 +1000

    Updated unit tests

 src/unittest.c |   56 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 33 insertions(+), 23 deletions(-)
---
diff --git a/src/unittest.c b/src/unittest.c
index 0ced852..79ad2f0 100644
--- a/src/unittest.c
+++ b/src/unittest.c
@@ -162,6 +162,10 @@ test_parser()
     test("1½", "1.5", 0);
     test("1.00", "1", 0);
     test("1.01", "1.01", 0);
+
+    test("١٢٣٤٥٦٧٨٩٠", "1234567890", 0);
+    test("Û±Û²Û³Û´ÛµÛ¶Û·Û¸Û¹Û°", "1234567890", 0);
+
     //test("2A", "2000000000000000", 0);
     test("2T", "2000000000000", 0);
     test("2G", "2000000000", 0);
@@ -190,9 +194,15 @@ test_parser()
     //test("2n3", "0.0000000023", 0); // FIXME: Need to print out significant figures, not decimal places
     //test("2p3", "0.0000000000023", 0); // FIXME: Need to print out significant figures, not decimal places
     //test("2f3", "0.0000000000000023", 0); // FIXME: Need to print out significant figures, not decimal places
+
+    test("2e3", "2000", 0);
+    test("2e+3", "2000", 0);
+    test("2e-3", "0.002", 0);
+    test("2Ã?10^3", "2000", 0);
+    test("2Ã?10^â??3", "0.002", 0);
+
     test("Ï?", "3.141592654", 0);
     test("e", "2.718281828", 0);
-
     test("2Ï?", "6.283185307", 0);
     test("2e", "5.436563657", 0);
     //test("2Ï?²", "19.739208802", 0);
@@ -202,9 +212,6 @@ test_parser()
     test("Ï?e", "8.539734223", 0);
     test("eÏ?", "8.539734223", 0);
     //test("2Ï?e", "17.079468445", 0);
-    
-    test("١٢٣٤٥٦٧٨٩٠", "1234567890", 0);
-    test("Û±Û²Û³Û´ÛµÛ¶Û·Û¸Û¹Û°", "1234567890", 0);
 
     test("0+0", "0", 0);
     test("1+1", "2", 0);
@@ -215,42 +222,42 @@ test_parser()
     test("2-3", "â??1", 0);
     test("2â??3", "â??1", 0);
     test("3â??2", "1", 0);
-    test("1â??0.9â??0.1", "0", 0);
     test("40000â??0.001", "39999.999", 0);
     test("0.001â??40000", "â??39999.999", 0);
-    test("40000000â??40000000", "0", 0);
     test("2*3", "6", 0);
     test("2Ã?3", "6", 0);
     test("â??2Ã?3", "â??6", 0);
     test("2Ã?â??3", "â??6", 0);
     test("â??2Ã?â??3", "6", 0);
-    
-    test("2e3", "2000", 0);
-    test("2e+3", "2000", 0);
-    test("2e-3", "0.002", 0);
-    test("2Ã?10^3", "2000", 0);
-    test("2Ã?10^â??3", "0.002", 0);
-
     test("6/3", "2", 0);
     test("6÷3", "2", 0);
     test("1÷2", "0.5", 0);
     test("â??6÷3", "â??2", 0);
     test("6÷â??3", "â??2", 0);
     test("â??6÷â??3", "2", 0);
+    test("(â??3)÷(â??6)", "0.5", 0);
     test("2÷2", "1", 0);
     test("1203÷1", "1203", 0);
     test("â??0÷32352.689", "0", 0);
     test("1÷4", "0.25", 0);
-    test("(â??3)÷(â??6)", "0.5", 0);
     test("1÷3", "0.333333333", 0);
     test("2÷3", "0.666666667", 0);
     test("1÷0", "", -20001);
     test("0÷0", "", -20001);
+    
+    /* Precision */
+    test("1000000000000000â??1000000000000000", "0", 0);
+    test("1000000000000000÷1000000000000000", "1", 0);
+    test("1000000000000000Ã?0.000000000000001", "1", 0);    
 
+    /* Order of operations */
+    test("1â??0.9â??0.1", "0", 0);
     test("1+2Ã?3", "7", 0);
     test("1+(2Ã?3)", "7", 0);
     test("(1+2)Ã?3", "9", 0);
+    test("(1+2Ã?3)", "7", 0);
     
+    /* Percentage */
     test("100%", "1", 0);
     test("1%", "0.01", 0);
     test("100+1%", "101", 0);
@@ -258,16 +265,17 @@ test_parser()
     test("100Ã?1%", "1", 0);
     test("100÷1%", "10000", 0);
 
+    /* Factorial */
     test("0!", "1", 0);
     test("1!", "1", 0);
     test("5!", "120", 0);
     test("69!", "171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000", 0);
     test("0.1!", "", -20001);
-    test("â??1!", "", -20001);
-    test("0â??1!", "â??1", 0);    
+    test("â??1!", "â??1", 0);
     test("(â??1)!", "", -20001);
     test("â??(1!)", "â??1", 0);
 
+    /* Powers */
     test("2²", "4", 0);
     test("2³", "8", 0);
     test("2¹�", "1024", 0);
@@ -278,7 +286,7 @@ test_parser()
     //test("2â?»", "", -20001); // FIXME: Maybe an error in bison?
     test("2^â??1", "0.5", 0);
     test("2^(â??1)", "0.5", 0);
-    test("â??10^2", "100", 0);
+    test("â??10^2", "â??100", 0);
     test("(â??10)^2", "100", 0);
     test("â??(10^2)", "â??100", 0);
     test("2^100", "1267650600228229401496703205376", 0);
@@ -299,8 +307,8 @@ test_parser()
     test("Sqrt(2)", "1.414213562", 0);
     test("4^0.5", "2", 0);
     test("2^0.5", "1.414213562", 0);
-    test("â??4^0.5", "", -20001);
-    test("â??8^(1÷3)", "â??2", 0);
+    test("(â??4)^0.5", "", -20001);
+    test("(â??8)^(1÷3)", "â??2", 0);
     
     test("0 mod 7", "0", 0);
     test("6 mod 7", "6", 0);
@@ -308,10 +316,10 @@ test_parser()
     test("8 mod 7", "1", 0);
     test("â??1 mod 7", "6", 0);
     
-    test("Int(3.2)", "3", 0);
-    test("Frac(3.2)", "0.2", 0);
-    test("Int(â??3.2)", "â??3", 0);
-    test("Frac(â??3.2)", "â??0.2", 0);
+    test("int 3.2", "3", 0);
+    test("frac 3.2", "0.2", 0);
+    test("int â??3.2", "â??3", 0);
+    test("frac â??3.2", "â??0.2", 0);
 
     test("|1|", "1", 0);
     test("|â??1|", "1", 0);
@@ -326,6 +334,8 @@ test_parser()
     test("log 1", "0", 0);
     test("log 2", "0.301029996", 0);
     test("log 10", "1", 0);
+    test("logâ??â?? 10", "1", 0);
+    test("logâ?? 2", "1", 0);
     test("2 log 2", "0.602059991", 0);
 
     test("ln â??1", "", -20001);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]