CROSSTABS: Handle case where all cases in a crosstabulation are missing.
[pspp] / tests / language / stats / crosstabs.at
index 633679f3fe7a409f718e2d142e3ec795febb0c7d..2657cc45f3d416c778a6c4f0a555b040756e14c2 100644 (file)
@@ -174,7 +174,7 @@ x,1.00,2.00,Total
 Total,2.0,2.0,4.0
 
 Table: Chi-square tests.
-Statistic,Value,df,Asymp. Sig. (2-sided)
+Statistic,Value,df,Asymp. Sig. (2-tailed)
 Pearson Chi-Square,2.00,2,.37
 Likelihood Ratio,2.77,2,.25
 Linear-by-Linear Association,.27,1,.60
@@ -234,7 +234,7 @@ Total,4.0,2.0,6.0
 ,66.7%,33.3%,100.0%
 
 Table: Chi-square tests.
-Statistic,Value,df,Asymp. Sig. (2-sided),Exact Sig. (2-sided),Exact Sig. (1-sided)
+Statistic,Value,df,Asymp. Sig. (2-tailed),Exact Sig. (2-tailed),Exact Sig. (1-tailed)
 Pearson Chi-Square,.38,1,.54,,
 Likelihood Ratio,.37,1,.54,,
 Fisher's Exact Test,,,,1.00,.60
@@ -267,7 +267,7 @@ Total,1.0,3.0,4.0
 ,25.0%,75.0%,100.0%
 
 Table: Chi-square tests.
-Statistic,Value,df,Asymp. Sig. (2-sided),Exact Sig. (2-sided),Exact Sig. (1-sided)
+Statistic,Value,df,Asymp. Sig. (2-tailed),Exact Sig. (2-tailed),Exact Sig. (1-tailed)
 Pearson Chi-Square,.44,1,.50,,
 Likelihood Ratio,.68,1,.41,,
 Fisher's Exact Test,,,,1.00,.75
@@ -342,3 +342,62 @@ Total,,4.0,1.0,5.0
 Total,,3.0,1.0,4.0
 ]])
 AT_CLEANUP
+
+
+
+AT_SETUP([CROSSTABS descending sort order])
+AT_DATA([crosstabs-descending.sps],
+  [[DATA LIST NOTABLE LIST /x * y *.
+BEGIN DATA.
+2 2
+2 2
+3 1
+4 1
+3 2
+3 2
+END DATA.
+
+CROSSTABS
+        /TABLES= x BY y
+       /FORMAT = DVALUE.
+]])
+
+AT_CHECK([pspp -O format=csv crosstabs-descending.sps], [0],
+  [[Table: Summary.
+,Cases,,,,,
+,Valid,,Missing,,Total,
+,N,Percent,N,Percent,N,Percent
+x * y,6,100.0%,0,0.0%,6,100.0%
+
+Table: x * y [count].
+,y,,
+x,2.00,1.00,Total
+4.00,.0,1.0,1.0
+3.00,2.0,1.0,3.0
+2.00,2.0,.0,2.0
+Total,4.0,2.0,6.0
+]])
+AT_CLEANUP
+
+# Bug #31260.
+AT_SETUP([CROSSTABS crash when all cases missing])
+AT_DATA([crosstabs.sps], [dnl
+DATA LIST LIST NOTABLE /X1 X2.
+BEGIN DATA.
+1 1
+END DATA.
+
+MISSING VALUES x2 (1).
+
+CROSSTABS /TABLES= X1 by X2.
+])
+AT_CHECK([pspp -O format=csv crosstabs.sps], [0], [dnl
+Table: Summary.
+,Cases,,,,,
+,Valid,,Missing,,Total,
+,N,Percent,N,Percent,N,Percent
+X1 * X2,0,0.0%,1,100.0%,1,100.0%
+
+crosstabs.sps:8: warning: CROSSTABS: Crosstabulation X1 * X2 contained no non-missing cases.
+])
+AT_CLEANUP