X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=tests%2Flanguage%2Fstats%2Fsort-cases.at;h=5217e64d3f7efad3a367bc5c2240a63ff2fff86d;hb=92635c65e5e265dc8114805af8974715539d90d2;hp=d06f2b2901e7ab33bb32111ee43b0b1c14369000;hpb=a258e53c63a08b0ec48aea8f03808eb651729424;p=pspp diff --git a/tests/language/stats/sort-cases.at b/tests/language/stats/sort-cases.at index d06f2b2901..5217e64d3f 100644 --- a/tests/language/stats/sort-cases.at +++ b/tests/language/stats/sort-cases.at @@ -1,3 +1,19 @@ +dnl PSPP - a program for statistical analysis. +dnl Copyright (C) 2017 Free Software Foundation, Inc. +dnl +dnl This program is free software: you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation, either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program. If not, see . +dnl AT_BANNER([SORT CASES]) m4_divert_push([PREPARE_TESTS]) @@ -37,16 +53,16 @@ EOF } m4_divert_pop([PREPARE_TESTS]) -m4_define([SORT_CASES_TEST], +m4_define([SORT_CASES_TEST], [AT_SETUP([sort m4_eval([$1 * $2]) cases[]m4_if([$2], [1], [], [ ($1 unique)])[]m4_if([$3], [], [], [ with $3 buffers])]) - AT_KEYWORDS([SORT CASES]) + AT_KEYWORDS([SORT CASES $4]) AT_CHECK([sort_cases_gen_data $1 $2 $3]) AT_CAPTURE_FILE([data.txt]) AT_CAPTURE_FILE([output.txt]) AT_CAPTURE_FILE([sort-cases.sps]) AT_DATA([sort-cases.sps], [dnl DATA LIST LIST NOTABLE FILE='data.txt'/x y (F8). -SORT BY x[]m4_if([$3], [], [], [/BUFFERS=$3]). +SORT CASES BY x[]m4_if([$3], [], [], [/BUFFERS=$3]). PRINT OUTFILE='output.txt'/x y. EXECUTE. ]) @@ -68,15 +84,63 @@ SORT_CASES_TEST(100, 10, 3) SORT_CASES_TEST(100, 10, 5) SORT_CASES_TEST(100, 10) -SORT_CASES_TEST(1000, 5, 5) -SORT_CASES_TEST(1000, 5, 50) -SORT_CASES_TEST(1000, 5) +SORT_CASES_TEST(1000, 5, 5, slow) +SORT_CASES_TEST(1000, 5, 50, slow) +SORT_CASES_TEST(1000, 5, [], slow) -SORT_CASES_TEST(100, 100, 3) -SORT_CASES_TEST(100, 100, 5) -SORT_CASES_TEST(100, 100) +SORT_CASES_TEST(100, 100, 3, slow) +SORT_CASES_TEST(100, 100, 5, slow) +SORT_CASES_TEST(100, 100, [], slow) -SORT_CASES_TEST(10000, 5, 500) +SORT_CASES_TEST(10000, 5, 500, slow) -SORT_CASES_TEST(50000, 1) +SORT_CASES_TEST(50000, 1, [], slow) +dnl Bug #33089 caused SORT CASES to delete filtered cases permanently. +AT_SETUP([SORT CASES preserves filtered cases]) +AT_DATA([sort-cases.sps], [dnl +DATA LIST FREE /x. +BEGIN DATA. +5 4 3 2 1 0 +END DATA. +COMPUTE mod2 = MOD(x, 2). +LIST. +FILTER BY mod2. +LIST. +SORT CASES BY x. +LIST. +FILTER OFF. +LIST. +]) +AT_CHECK([pspp -O format=csv sort-cases.sps], [0], [dnl +Table: Data List +x,mod2 +5.00,1.00 +4.00,.00 +3.00,1.00 +2.00,.00 +1.00,1.00 +.00,.00 + +Table: Data List +x,mod2 +5.00,1.00 +3.00,1.00 +1.00,1.00 + +Table: Data List +x,mod2 +1.00,1.00 +3.00,1.00 +5.00,1.00 + +Table: Data List +x,mod2 +.00,.00 +1.00,1.00 +2.00,.00 +3.00,1.00 +4.00,.00 +5.00,1.00 +]) +AT_CLEANUP