-Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
-,bar ,2,20.00,20.00,20.00
-,baz ,4,40.00,40.00,60.00
-,foo ,2,20.00,20.00,80.00
-,quux ,2,20.00,20.00,100.00
-Total,,10,100.0,100.0,
+,,Frequency,Percent,Valid Percent,Cumulative Percent
+Valid,bar,2,20.0%,20.0%,20.0%
+,baz,4,40.0%,40.0%,60.0%
+,foo,2,20.0%,20.0%,80.0%
+,quux,2,20.0%,20.0%,100.0%
+Total,,10,100.0%,,
+])
+AT_CLEANUP
+
+AT_SETUP([FREQUENCIES with SPLIT FILE - LAYERED])
+AT_DATA([frequencies.sps], [dnl
+DATA LIST LIST NOTABLE/name (A8) value quantity.
+BEGIN DATA.
+foo 1 5
+bar 2 6
+baz 1 9
+quux 3 1
+bar 1 2
+baz 4 3
+baz 1 4
+baz 1 1
+foo 6 0
+quux 5 8
+END DATA.
+EXECUTE.
+
+SORT CASES BY name.
+SPLIT FILE BY name.
+FREQUENCIES /VARIABLES=value quantity /FORMAT NOTABLE.
+])
+AT_CHECK([pspp -O format=csv frequencies.sps], [0], [dnl
+Table: Statistics
+name,,,value,quantity
+bar,N,Valid,2,2
+,,Missing,0,0
+,Mean,,1.50,4.00
+,Std Dev,,.71,2.83
+,Minimum,,1.00,2.00
+,Maximum,,2.00,6.00
+baz,N,Valid,4,4
+,,Missing,0,0
+,Mean,,1.75,4.25
+,Std Dev,,1.50,3.40
+,Minimum,,1.00,1.00
+,Maximum,,4.00,9.00
+foo,N,Valid,2,2
+,,Missing,0,0
+,Mean,,3.50,2.50
+,Std Dev,,3.54,3.54
+,Minimum,,1.00,.00
+,Maximum,,6.00,5.00
+quux,N,Valid,2,2
+,,Missing,0,0
+,Mean,,4.00,4.50
+,Std Dev,,1.41,4.95
+,Minimum,,3.00,1.00
+,Maximum,,5.00,8.00
+])
+AT_CLEANUP
+
+AT_SETUP([FREQUENCIES with SPLIT FILE - SEPARATE])
+AT_DATA([frequencies.sps], [dnl
+DATA LIST LIST NOTABLE/name (A8) value quantity.
+BEGIN DATA.
+foo 1 5
+bar 2 6
+baz 1 9
+quux 3 1
+bar 1 2
+baz 4 3
+baz 1 4
+baz 1 1
+foo 6 0
+quux 5 8
+END DATA.
+EXECUTE.
+
+SORT CASES BY name.
+SPLIT FILE SEPARATE BY name.
+FREQUENCIES /VARIABLES=value quantity /FORMAT NOTABLE.
+])
+AT_CHECK([pspp -O format=csv frequencies.sps], [0], [dnl
+Table: Split Values
+Variable,Value
+name,bar
+
+Table: Statistics
+,,value,quantity
+N,Valid,2,2
+,Missing,0,0
+Mean,,1.50,4.00
+Std Dev,,.71,2.83
+Minimum,,1.00,2.00
+Maximum,,2.00,6.00
+
+Table: Split Values
+Variable,Value
+name,baz
+
+Table: Statistics
+,,value,quantity
+N,Valid,4,4
+,Missing,0,0
+Mean,,1.75,4.25
+Std Dev,,1.50,3.40
+Minimum,,1.00,1.00
+Maximum,,4.00,9.00
+
+Table: Split Values
+Variable,Value
+name,foo
+
+Table: Statistics
+,,value,quantity
+N,Valid,2,2
+,Missing,0,0
+Mean,,3.50,2.50
+Std Dev,,3.54,3.54
+Minimum,,1.00,.00
+Maximum,,6.00,5.00
+
+Table: Split Values
+Variable,Value
+name,quux
+
+Table: Statistics
+,,value,quantity
+N,Valid,2,2
+,Missing,0,0
+Mean,,4.00,4.50
+Std Dev,,1.41,4.95
+Minimum,,3.00,1.00
+Maximum,,5.00,8.00
+])
+AT_CLEANUP
+
+AT_SETUP([FREQUENCIES with SPLIT FILE - LAYERED - unsorted data])
+AT_DATA([frequencies.sps], [dnl
+DATA LIST LIST NOTABLE/name (A8) value quantity.
+BEGIN DATA.
+foo 1 5
+bar 2 6
+baz 1 9
+quux 3 1
+baz 4 3
+bar 1 2
+baz 1 1
+foo 6 0
+baz 1 4
+quux 5 8
+END DATA.
+EXECUTE.
+
+SPLIT FILE BY name.
+FREQUENCIES /VARIABLES=value quantity /FORMAT NOTABLE.
+])
+AT_CHECK([pspp -O format=csv frequencies.sps], [0], [dnl
+"frequencies.sps:17: warning: FREQUENCIES: When SPLIT FILE is in effect, the input data must be sorted by the split variables (for example, using SORT CASES), but multiple runs of cases with the same split values were found separated by cases with different values. Each run will be analyzed separately. The duplicate split values are: name = baz "
+
+"frequencies.sps:17: warning: FREQUENCIES: When SPLIT FILE is in effect, the input data must be sorted by the split variables (for example, using SORT CASES), but multiple runs of cases with the same split values were found separated by cases with different values. Each run will be analyzed separately. The duplicate split values are: name = bar "
+
+"frequencies.sps:17: warning: FREQUENCIES: When SPLIT FILE is in effect, the input data must be sorted by the split variables (for example, using SORT CASES), but multiple runs of cases with the same split values were found separated by cases with different values. Each run will be analyzed separately. The duplicate split values are: name = baz "
+
+"frequencies.sps:17: warning: FREQUENCIES: When SPLIT FILE is in effect, the input data must be sorted by the split variables (for example, using SORT CASES), but multiple runs of cases with the same split values were found separated by cases with different values. Each run will be analyzed separately. The duplicate split values are: name = foo "
+
+"frequencies.sps:17: warning: FREQUENCIES: When SPLIT FILE is in effect, the input data must be sorted by the split variables (for example, using SORT CASES), but multiple runs of cases with the same split values were found separated by cases with different values. Each run will be analyzed separately. The duplicate split values are: name = baz "
+
+Table: Statistics
+name,,,value,quantity
+foo,N,Valid,1,1
+,,Missing,0,0
+,Mean,,1.00,5.00
+,Std Dev,,NaN,NaN
+,Minimum,,1.00,5.00
+,Maximum,,1.00,5.00
+bar,N,Valid,1,1
+,,Missing,0,0
+,Mean,,2.00,6.00
+,Std Dev,,NaN,NaN
+,Minimum,,2.00,6.00
+,Maximum,,2.00,6.00
+baz,N,Valid,1,1
+,,Missing,0,0
+,Mean,,1.00,9.00
+,Std Dev,,NaN,NaN
+,Minimum,,1.00,9.00
+,Maximum,,1.00,9.00
+quux,N,Valid,1,1
+,,Missing,0,0
+,Mean,,3.00,1.00
+,Std Dev,,NaN,NaN
+,Minimum,,3.00,1.00
+,Maximum,,3.00,1.00
+baz,N,Valid,1,1
+,,Missing,0,0
+,Mean,,4.00,3.00
+,Std Dev,,NaN,NaN
+,Minimum,,4.00,3.00
+,Maximum,,4.00,3.00
+bar,N,Valid,1,1
+,,Missing,0,0
+,Mean,,1.00,2.00
+,Std Dev,,NaN,NaN
+,Minimum,,1.00,2.00
+,Maximum,,1.00,2.00
+baz,N,Valid,1,1
+,,Missing,0,0
+,Mean,,1.00,1.00
+,Std Dev,,NaN,NaN
+,Minimum,,1.00,1.00
+,Maximum,,1.00,1.00
+foo,N,Valid,1,1
+,,Missing,0,0
+,Mean,,6.00,.00
+,Std Dev,,NaN,NaN
+,Minimum,,6.00,.00
+,Maximum,,6.00,.00
+baz,N,Valid,1,1
+,,Missing,0,0
+,Mean,,1.00,4.00
+,Std Dev,,NaN,NaN
+,Minimum,,1.00,4.00
+,Maximum,,1.00,4.00
+quux,N,Valid,1,1
+,,Missing,0,0
+,Mean,,5.00,8.00
+,Std Dev,,NaN,NaN
+,Minimum,,5.00,8.00
+,Maximum,,5.00,8.00
+
+frequencies.sps:17: warning: FREQUENCIES: Suppressed 1 additional warning about duplicate split values.