X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=tests%2Flanguage%2Fdictionary%2Fmissing-values.at;h=b74b7ae8017be1cf353f25b60b6fdb804ce83126;hb=691a034d7f2139076fa012739dffd40ef5db4a9b;hp=75254462aa0ea3bc39cffec96897b3cd9a7ea15a;hpb=9ade26c8349b4434008c46cf09bc7473ec743972;p=pspp diff --git a/tests/language/dictionary/missing-values.at b/tests/language/dictionary/missing-values.at index 75254462aa..b74b7ae801 100644 --- a/tests/language/dictionary/missing-values.at +++ b/tests/language/dictionary/missing-values.at @@ -1,4 +1,19 @@ -AT_BANNER([MISSING VALUES]) +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([MISSING VALUES]) AT_SETUP([MISSING VALUES valid cases]) AT_DATA([missing-values.sps], [dnl @@ -7,38 +22,123 @@ DATA LIST NOTABLE/str1 1-5 (A) str2 6-8 (A) date1 9-19 (DATE) num1 20-25 * Numeric missing values. MISSING VALUES date1 num1 (1). +DISPLAY DICTIONARY date1 num1. MISSING VALUES date1 num1 (1, 2). +DISPLAY DICTIONARY date1 num1. MISSING VALUES date1 num1 (1, 2, 3). +DISPLAY DICTIONARY date1 num1. +MISSING VALUES date1 num1 (9999998, 9999984, 3). +DISPLAY DICTIONARY date1 num1. * Numeric missing values using the first variable's format. MISSING VALUES num1 date1 ('1'). +DISPLAY DICTIONARY date1 num1. MISSING VALUES num1 date1 ('1', '2'). +DISPLAY DICTIONARY date1 num1. MISSING VALUES num1 date1 ('1', '2', '3'). +DISPLAY DICTIONARY date1 num1. MISSING VALUES date1 num1 ('06-AUG-05'). +DISPLAY DICTIONARY date1 num1. MISSING VALUES date1 num1 ('06-AUG-05', '01-OCT-78'). +DISPLAY DICTIONARY date1 num1. MISSING VALUES date1 num1 ('06-AUG-05', '01-OCT-78', '14-FEB-81'). +DISPLAY DICTIONARY date1 num1. * Ranges of numeric missing values. MISSING VALUES num1 (1 THRU 2). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (LO THRU 2). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (LOWEST THRU 2). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (1 THRU HI). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (1 THRU HIGHEST). +DISPLAY DICTIONARY num1. * A range of numeric missing values, plus an individual value. MISSING VALUES num1 (1 THRU 2, 3). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (LO THRU 2, 3). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (LOWEST THRU 2, 3). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (1 THRU HI, -1). +DISPLAY DICTIONARY num1. MISSING VALUES num1 (1 THRU HIGHEST, -1). +DISPLAY DICTIONARY num1. * String missing values. MISSING VALUES str1 str2 longstr ('abc ','def'). +DISPLAY DICTIONARY str1 str2 longstr. * May mix variable types when clearing missing values. MISSING VALUES ALL (). +DISPLAY DICTIONARY +]) +AT_CHECK([pspp -o pspp.csv missing-values.sps]) +AT_CHECK([sed -n '/^$/p; /^@<:@^"@:>@*"@<:@^"@:>@*$/N; s/^\(@<:@a-z0-9@:>@*\),".*Missing Values: \(.*\)",@<:@0-9@:>@*$/\1: \2/p; s/^\(@<:@a-z0-9@:>@*\),Format: @<:@A-Z0-9.@:>@*,@<:@0-9@:>@*$/\1: none/p' pspp.csv +], [0], [dnl +date1: 1 +num1: 1 + +date1: 1; 2 +num1: 1; 2 + +date1: 1; 2; 3 +num1: 1; 2; 3 + +date1: 9999998; 9999984; 3 +num1: 9999998; 9999984; 3 + +date1: 1 +num1: 1 + +date1: 1; 2 +num1: 1; 2 + +date1: 1; 2; 3 +num1: 1; 2; 3 + +date1: 13342665600 +num1: 13342665600 + +date1: 13342665600; 12495427200 +num1: 13342665600; 12495427200 + +date1: 13342665600; 12495427200; 12570336000 +num1: 13342665600; 12495427200; 12570336000 + +num1: 1 THRU 2 + +num1: LOWEST THRU 2 + +num1: LOWEST THRU 2 + +num1: 1 THRU HIGHEST + +num1: 1 THRU HIGHEST + +num1: 1 THRU 2; 3 + +num1: LOWEST THRU 2; 3 + +num1: LOWEST THRU 2; 3 + +num1: 1 THRU HIGHEST; -1 + +num1: 1 THRU HIGHEST; -1 + +str1: ""abc ""; ""def "" +str2: ""abc""; ""def"" +longstr: ""abc ""; ""def "" + +str1: none +str2: none +date1: none +num1: none +longstr: none ]) -AT_CHECK([pspp -O format=csv missing-values.sps]) AT_CLEANUP AT_SETUP([MISSING VALUES invalid cases]) @@ -57,6 +157,15 @@ MISSING VALUES str1 ('a' THRU 'z'). * Mixing string and numeric variables. MISSING VALUES str1 num1 ('123'). + +* Too many values. +MISSING VALUES num1 (1, 2, 3, 4). +MISSING VALUES num1 (1 THRU 2, 3 THRU 4). +MISSING VALUES num1 (1, 2 THRU 3, 4). +MISSING VALUES str1 ('abc', 'def', 'ghi', 'jkl'). + +* Bad range. +MISSING VALUES num1 (2 THRU 1). ]) AT_CHECK([pspp -O format=csv missing-values.sps], [1], [dnl missing-values.sps:5: error: MISSING VALUES: Missing values provided are too long to assign to variable of width 3. @@ -68,5 +177,15 @@ missing-values.sps:11.26-11.29: error: MISSING VALUES: Syntax error at `THRU': e missing-values.sps:11: error: MISSING VALUES: THRU is not a variable name. missing-values.sps:14: error: MISSING VALUES: Cannot mix numeric variables (e.g. num1) and string variables (e.g. str1) within a single list. + +missing-values.sps:17: error: MISSING VALUES: Too many numeric missing values. At most three individual values or one value and one range are allowed. + +missing-values.sps:18: error: MISSING VALUES: Too many numeric missing values. At most three individual values or one value and one range are allowed. + +missing-values.sps:19: error: MISSING VALUES: Too many numeric missing values. At most three individual values or one value and one range are allowed. + +missing-values.sps:20: error: MISSING VALUES: Too many string missing values. At most three individual values are allowed. + +missing-values.sps:23: warning: MISSING VALUES: The high end of the range (1) is below the low end (2). The range will be treated as if reversed. ]) AT_CLEANUP