[Gnucash-changes] r13300 - gnucash/trunk - A few tests to improve get_random_query() and fix a couple test bugs.

Derek Atkins warlord at cvs.gnucash.org
Sun Feb 19 14:29:52 EST 2006


Author: warlord
Date: 2006-02-19 14:29:51 -0500 (Sun, 19 Feb 2006)
New Revision: 13300
Trac: http://svn.gnucash.org/trac/changeset/13300

Modified:
   gnucash/trunk/ChangeLog
   gnucash/trunk/src/engine/test-core/test-engine-stuff.c
Log:
A few tests to improve get_random_query() and fix a couple test bugs.

	  - Prefer QUERY_AND and QUERY_OR over NAND, NOR, XOR
	  - Don't randomly generate a gnc_numeric with a 0 denominator.



Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog	2006-02-19 19:28:28 UTC (rev 13299)
+++ gnucash/trunk/ChangeLog	2006-02-19 19:29:51 UTC (rev 13300)
@@ -33,6 +33,10 @@
 	* lib/goffice-0.0.4/goffice/cut-and-paste/foo-canvas/foo-canvas-i18n.h:
 	  Use glib's gi18n.h instead of redefining gettext.
 
+	* src/engine/test/test-engine-stuff.c:
+	  - Prefer QUERY_AND and QUERY_OR over NAND, NOR, XOR
+	  - Don't randomly generate a gnc_numeric with a 0 denominator.
+
 2006-02-18  Derek Atkins  <derek at ihtfp.com>
 
 	* intl-scm/xgettext.scm: remove the absolute path from filenames

Modified: gnucash/trunk/src/engine/test-core/test-engine-stuff.c
===================================================================
--- gnucash/trunk/src/engine/test-core/test-engine-stuff.c	2006-02-19 19:28:28 UTC (rev 13299)
+++ gnucash/trunk/src/engine/test-core/test-engine-stuff.c	2006-02-19 19:29:51 UTC (rev 13300)
@@ -461,6 +461,8 @@
      * of avoiding overflow. */
     numer = get_random_gint64()/100000;
     if (0 == numer) numer = 1;
+    /* Make sure we have a non-zero denominator */
+    if (0 == deno) deno = 1;
     return gnc_numeric_create(numer, deno);
 }
 
@@ -1524,8 +1526,29 @@
 static QofQueryOp
 get_random_queryop(void)
 {
-  QofQueryOp op = get_random_int_in_range (1, QOF_QUERY_XOR);
-  if (gnc_engine_debug_random) printf ("op = %d, ", op);
+  int op_num = get_random_int_in_range(1,11);
+  QofQueryOp op;
+  /* = get_random_int_in_range (1, QOF_QUERY_XOR); */
+
+  /* Let's make it MUCH more likely to get AND and OR */
+  switch(op_num) {
+  case 1:  case 2:  case 3:  case 4:
+    op = QOF_QUERY_AND;
+    break;
+  case 5:  case 6:  case 7:  case 8:
+    op = QOF_QUERY_OR;
+    break;
+  case 9:
+    op = QOF_QUERY_NAND;
+    break;
+  case 10:
+    op = QOF_QUERY_NOR;
+    break;
+  case 11:
+    op = QOF_QUERY_XOR;
+    break;
+  };
+  if (gnc_engine_debug_random) printf ("op = %d (int was %d), ", op, op_num);
   return op;
 }
 



More information about the gnucash-changes mailing list