[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