[Gnucash-changes] Patch from Chris Shoemaker to add a new negative test case.

David Hampton hampton at cvs.gnucash.org
Fri Oct 14 09:03:47 EDT 2005


Log Message:
-----------
Patch from Chris Shoemaker to add a new negative test case.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash/src/engine/test:
        test-freq-spec.c

Revision Data
-------------
Index: test-freq-spec.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/test/test-freq-spec.c,v
retrieving revision 1.6.4.5
retrieving revision 1.6.4.6
diff -Lsrc/engine/test/test-freq-spec.c -Lsrc/engine/test/test-freq-spec.c -u -r1.6.4.5 -r1.6.4.6
--- src/engine/test/test-freq-spec.c
+++ src/engine/test/test-freq-spec.c
@@ -89,7 +89,7 @@
    g_date_set_dmy( &date1, 25, 3, 2001 );
    for( interval = 1; interval < 20; ++interval ) {
       xaccFreqSpecSetDaily( fs, &date1, interval );
-      for( j = 0; j < 20; ++j ) {
+      for( j = 0; j < 20; ++j ) { /* j=0 passes by luck, but it's not valid */
          date2 = date1;
          for( i = 0; i < j; ++i ) {
             xaccFreqSpecGetNextInstance( fs, &date2, &next_date );
@@ -357,6 +357,26 @@
    xaccFreqSpecFree(fs);
 }
 
+static void test_caseA()
+{
+   FreqSpec *fs;
+   GDate date0, date1, date2, date3;
+
+   fs = xaccFreqSpecMalloc(book);
+
+   g_date_set_dmy(&date0, 31, 12, 1); /* end of year */
+
+   xaccFreqSpecSetMonthly(fs, &date0, 3);  /* quarterly */
+
+   g_date_set_dmy(&date1, 13, 2, 1);  /* Feb 13th */
+   xaccFreqSpecGetNextInstance( fs, &date1, &date2 );
+
+   g_date_set_dmy( &date3, 31, 3, 1 ); /* Should get March 31st */
+   do_test( g_date_compare( &date2, &date3 ) == 0, "end of quarter" );
+
+   xaccFreqSpecFree(fs);
+}
+
 static void
 test_composite (void)
 {
@@ -549,6 +569,7 @@
 	session = qof_session_new ();
 	book = qof_session_get_book(session);
    test_once();
+   test_caseA();
    test_daily();
    test_weekly();
    test_monthly();


More information about the gnucash-changes mailing list