[Gnucash-changes] test driver tweaks

Linas Vepstas linas at cvs.gnucash.org
Fri Jul 2 21:24:02 EDT 2004


Log Message:
-----------
test driver tweaks

Modified Files:
--------------
    gnucash/src/engine/test-core:
        test-engine-stuff.c

Revision Data
-------------
Index: test-engine-stuff.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/test-core/test-engine-stuff.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -Lsrc/engine/test-core/test-engine-stuff.c -Lsrc/engine/test-core/test-engine-stuff.c -u -r1.68 -r1.69
--- src/engine/test-core/test-engine-stuff.c
+++ src/engine/test-core/test-engine-stuff.c
@@ -142,15 +142,15 @@
   return ret;
 }
 
-#define RAND_IN_RANGE(X) ((X*((gint64) (rand()+1)))/RAND_MAX)
+#define RAND_IN_RANGE(X) (((X)*((gint64) (rand()+1)))/RAND_MAX)
 
 gnc_numeric
 get_random_gnc_numeric(void)
 {
-    gint64 numer = get_random_gint64()/10;
+    gint64 numer;
     gint64 deno;
 
-    if (RAND_MAX/2 < rand())
+    if (RAND_MAX/8 > rand())
     {
        /* Random number between 1 and 6000 */
        deno = RAND_IN_RANGE(6000ULL);
@@ -167,6 +167,11 @@
           norm --;
        }
     }
+
+    /* Arbitrary random numbers can cause pointless overflow 
+     * during calculations.  Limit dynamic range in hopes 
+     * of avoiding overflow. */
+    numer = get_random_gint64()/100;
     return gnc_numeric_create(numer, deno);
 }
 
@@ -1156,7 +1161,10 @@
 
     name = get_random_string();
     xcode = get_random_string();
-    ran_int = get_random_int_in_range(1, 100000);
+
+    /* SCU == smallest currency unit -- the value of the denominator */
+#define MAX_SCU 106000
+    ran_int = get_random_int_in_range(1, MAX_SCU);
 
     ret = gnc_commodity_new (name, space, mn, xcode, ran_int);
 


More information about the gnucash-changes mailing list