pivot-table: Change the default format to omit empty rows and columns.
[pspp] / tests / language / dictionary / missing-values.at
index 84ee1725296e4a2d3db1f7d795958821a6d5cec9..fd748385917c770b00b35e85a50f319f3d7f33a0 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
+dnl
 AT_BANNER([MISSING VALUES])
 
 AT_SETUP([MISSING VALUES valid cases])
@@ -59,106 +75,72 @@ DISPLAY DICTIONARY str1 str2 longstr.
 
 * May mix variable types when clearing missing values.
 MISSING VALUES ALL ().
+MISSING VALUES num1 (1).
 DISPLAY DICTIONARY
 ])
 AT_CHECK([pspp -o pspp.csv missing-values.sps])
-AT_CHECK([sed -n '/Format/s/,.*/:/p
-s/"//g
-s/^,Missing Values: \([[^,]]*\),.*/\1/p
-/^$/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  @&t@
-str2:
-abc; def
-longstr:
-abc     ; def     @&t@
-
-str1:
-str2:
-date1:
-num1:
-longstr:
+AT_CHECK([cat pspp.csv | sed '/^Table/d
+/^Name/d
+s/^\([[a-z0-9]]*\),.*,\([[^,]]*\)$/\1: \2/'], [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: @&t@
+str2: @&t@
+date1: @&t@
+num1: 1
+longstr: @&t@
 ])
 AT_CLEANUP
 
@@ -178,6 +160,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.
@@ -189,5 +180,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