NPAR TESTS: Fix two test failures. 139/pspp 140/pspp 141/pspp 142/pspp 143/pspp 144/pspp 145/pspp 146/pspp 147/pspp 148/pspp 149/pspp 150/pspp 20101221030505/pspp 20101222030509/pspp 20101223030504/pspp 20101224030508/pspp 20101225030503/pspp 20101226030509/pspp 20101227030502/pspp 20101228030501/pspp 20101229030502/pspp 20101230030502/pspp 20101231030502/pspp 20110101030503/pspp
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 21 Dec 2010 08:12:09 +0000 (00:12 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 21 Dec 2010 08:12:09 +0000 (00:12 -0800)
Tests "NPAR TESTS CHISQUARE with DESCRIPTIVES" and "NPAR TESTS CHISQUARE,
listwise missing" were failing because of some unexpected behavior of
lex_put_back().  This fixes the problem by avoiding lex_put_back()
entirely.

src/language/stats/npar.c

index 73db1ad0b369fbe63889931220d1403d4f0ba97e..3f2bae298ef45669cd6331f896c160d0988ff465 100644 (file)
@@ -235,6 +235,8 @@ parse_npar_tests (struct lexer *lexer, struct dataset *ds, struct cmd_npar_tests
             case 2:
               lex_error (lexer, NULL);
               goto lossage;
+            case 3:
+              continue;
             default:
               NOT_REACHED ();
             }
@@ -720,7 +722,7 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds,
   struct chisquare_test *cstp = pool_alloc (specs->pool, sizeof (*cstp));
   struct one_sample_test *tp = &cstp->parent;
   struct npar_test *nt = &tp->parent;
-
+  int retval = 1;
 
   nt->execute = chisquare_execute;
   nt->insert_variables = one_sample_insert_variables;
@@ -794,7 +796,7 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds,
            }
        }
       else
-       lex_put_back (lexer, T_SLASH);
+        retval = 3;
     }
 
   if ( cstp->ranged && cstp->n_expected > 0 &&
@@ -815,7 +817,7 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds,
 
   specs->test[specs->n_tests - 1] = nt;
 
-  return 1;
+  return retval;
 }