1 AT_BANNER([MATCH FILES])
3 m4_define([PREPARE_MATCH_FILES],
4 [AT_DATA([data1.txt], [dnl
20 AT_DATA([data2.txt], [dnl
29 AT_DATA([prepare.sps], [dnl
30 DATA LIST NOTABLE FILE='data1.txt' /a b c 1-3 (A).
31 SAVE OUTFILE='data1.sav'.
32 DATA LIST NOTABLE FILE='data2.txt' /a b c 1-3 (A).
33 SAVE OUTFILE='data2.sav'.
35 AT_CHECK([pspp -O format=csv prepare.sps])
36 AT_CHECK([test -f data1.sav && test -f data2.sav])])
38 dnl CHECK_MATCH_FILES(TYPE2, SOURCE1, SOURCE2)
40 dnl Checks the MATCH FILES procedure with the specified combination of:
42 dnl - TYPE2: Either "file" or "table" for the type of matching used for
43 dnl the second data source. (The first data source is always "file").
45 dnl - SOURCE1: Either "system" or "active" for the source of data for
46 dnl the first data source.
48 dnl - SOURCE2: Either "system" or "active" for the source of data for
49 dnl the second data source. (SOURCE1 and SOURCE2 may not both be
51 m4_define([CHECK_MATCH_FILES],
52 [AT_SETUP([MATCH FILES -- $2 file and $3 $1])
55 [m4_if([$1], [file], [dnl
57 a,b,c,d,ina,inb,first,last
74 a,b,c,d,ina,inb,first,last
90 AT_DATA([match-files.sps], [dnl
91 m4_if([$2], [active], [GET FILE='data1.sav'.],
92 [$3], [active], [GET FILE='data2.sav'.],
95 FILE=m4_if([$2], [active], [*], ['data1.sav']) /IN=ina /SORT
96 $1=m4_if([$3], [active], [*], ['data2.sav']) /in=inb /rename c=d
97 /BY a /FIRST=first /LAST=last.
100 AT_CHECK([pspp -o pspp.csv match-files.sps])
101 AT_CHECK([cat pspp.csv], [0], [expout])
104 CHECK_MATCH_FILES([file], [system], [system])
105 CHECK_MATCH_FILES([file], [system], [active])
106 CHECK_MATCH_FILES([file], [active], [system])
107 CHECK_MATCH_FILES([table], [system], [system])
108 CHECK_MATCH_FILES([table], [system], [active])
109 CHECK_MATCH_FILES([table], [active], [system])
111 AT_SETUP([MATCH FILES parallel match])
113 AT_DATA([match-files.sps], [dnl
114 MATCH FILES FILE='data1.sav' /FILE='data2.sav' /RENAME (a b c=d e f).
117 AT_CHECK([pspp -o pspp.csv match-files.sps])
118 AT_CHECK([cat pspp.csv], [0], [dnl
137 dnl Test bug handling TABLE from active dataset found by John Darrington.
138 AT_SETUP([MATCH FILES bug with TABLE from active dataset])
139 AT_DATA([match-files.sps], [dnl
140 DATA LIST LIST NOTABLE /x * y *.
147 SAVE OUTFILE='bar.sav'.
149 DATA LIST LIST NOTABLE /x * z *.
155 MATCH FILES TABLE=* /FILE='bar.sav' /BY=x.
158 AT_CHECK([pspp -o pspp.csv match-files.sps])
159 AT_CHECK([cat pspp.csv], [0], [dnl
168 dnl Tests for a bug which caused MATCH FILES to crash
169 dnl when used with scratch variables.
170 AT_SETUP([MATCH FILES bug with scratch variables])
171 AT_DATA([match-files.sps], [dnl
172 DATA LIST LIST /w * x * y * .
183 MATCH FILES FILE=* /DROP=w.
187 AT_CHECK([pspp -o pspp.csv match-files.sps])
188 AT_CHECK([cat pspp.csv], [0], [dnl
189 Table: Reading free-form data from INLINE.