CROSSTABS: Drop buggy ASE for asymmetric lambda; fix T for symmetric lambda.
[pspp] / tests / language / stats / autorecode.at
index 3b27aa833d8448e8dbc5628ec5a20c98ffb40194..19dc0fcb734e17335eba34047962ee3d69bad325 100644 (file)
@@ -100,10 +100,10 @@ new,Format: F8.2,,3
 ,Measure: Scale,,
 ,Display Alignment: Right,,
 ,Display Width: 8,,
-,1,oojars,
-,2,oojimiflips,
-,3,thingummies,
-,4,widgets,
+,1.00,oojars,
+,2.00,oojimiflips,
+,3.00,thingummies,
+,4.00,widgets,
 ])
 
 AT_CLEANUP
@@ -176,3 +176,106 @@ a,b
 
 AT_CLEANUP
 
+
+dnl Tests for a crash which happened when the /GROUP subcommand
+dnl appeared with string variables of different widths.
+AT_SETUP([AUTORECODE group vs. strings])
+AT_DATA([ar-strings.sps],
+  [data list notable list /a (a12) b (a6).
+begin data.
+one    nine
+two    ten
+three  eleven 
+four   nought
+end data.
+
+autorecode a b into x y 
+       /group.
+
+list.
+])
+
+AT_CHECK([pspp -O format=csv ar-strings.sps], [0],
+[dnl
+Table: Data List
+a,b,x,y
+one         ,nine  ,5.00,3.00
+two         ,ten   ,8.00,6.00
+three       ,eleven,7.00,1.00
+four        ,nought,2.00,4.00
+])
+
+AT_CLEANUP
+
+
+
+AT_SETUP([AUTORECODE /blank])
+
+AT_DATA([auto-blank.sps],  [dnl
+data list notable list /x (a8) y * z (a16).
+begin data.
+one   2  fred
+two   4  ""
+""    4  fred
+""    2  charliebrown
+three 2  charliebrown
+end data.
+
+autorecode variables x y z into a b c  /blank=missing.
+
+list a b c y.
+])
+
+AT_CHECK([pspp -O format=csv auto-blank.sps], [0], [dnl
+Table: Data List
+a,b,c,y
+1.00,1.00,2.00,2.00
+3.00,2.00,.  ,4.00
+.  ,2.00,2.00,4.00
+.  ,1.00,1.00,2.00
+2.00,1.00,1.00,2.00
+])
+
+AT_CLEANUP
+
+dnl AUTORECODE had a use-after-free error when TEMPORARY was in use.
+dnl Bug #32757.
+AT_SETUP([AUTORECODE with TEMPORARY])
+AT_DATA([autorecode.sps],
+  [data list /X 1-5(a) Y 7.
+begin data.
+lasdj 1
+asdfk 0
+asdfj 2
+asdfj 1
+asdfk 2
+asdfj 9
+lajks 9
+asdfk 0
+asdfk 1
+end data.
+
+temporary.
+select if y > 1.
+autorecode x y into A B/descend.
+list.
+])
+AT_CHECK([pspp -O format=csv autorecode.sps], [0],
+  [Table: Reading 1 record from INLINE.
+Variable,Record,Columns,Format
+X,1,1-  5,A5
+Y,1,7-  7,F1.0
+
+Table: Data List
+X,Y,A,B
+lasdj,1,.  ,.  @&t@
+asdfk,0,2.00,.  @&t@
+asdfj,2,3.00,2.00
+asdfj,1,3.00,.  @&t@
+asdfk,2,2.00,2.00
+asdfj,9,3.00,1.00
+lajks,9,1.00,1.00
+asdfk,0,2.00,.  @&t@
+asdfk,1,2.00,.  @&t@
+])
+AT_CLEANUP