0745d932063af32a086fa5cd8e57b977ad906f10
[pspp-builds.git] / tests / command / filter.sh
1 #!/bin/sh
2
3 # This program tests ....
4
5 TEMPDIR=/tmp/pspp-tst-$$
6 TESTFILE=$TEMPDIR/`basename $0`.sps
7
8 here=`pwd`;
9
10 # ensure that top_srcdir is absolute
11 cd $top_srcdir; top_srcdir=`pwd`
12
13 STAT_CONFIG_PATH=$top_srcdir/config
14 export STAT_CONFIG_PATH
15
16
17 cleanup()
18 {
19      rm -rf $TEMPDIR
20 }
21
22
23 fail()
24 {
25     echo $activity
26     echo FAILED
27     cleanup;
28     exit 1;
29 }
30
31
32 no_result()
33 {
34     echo $activity
35     echo NO RESULT;
36     cleanup;
37     exit 2;
38 }
39
40 pass()
41 {
42     cleanup;
43     exit 0;
44 }
45
46 mkdir -p $TEMPDIR
47
48 cd $TEMPDIR
49
50 activity="create program"
51 cat > $TESTFILE << EOF
52 data list notable /X 1-2.
53 begin data.
54 1
55 2
56 3
57 4
58 5
59 6
60 7
61 8
62 9
63 10
64 end data.
65 compute FILTER_$ = mod(x,2).
66
67 filter by filter_$.
68 list.
69 filter off.
70 list.
71 compute filter_$ = 1 - filter_$.
72 filter by filter_$.
73 list.
74
75 EOF
76 if [ $? -ne 0 ] ; then no_result ; fi
77
78
79 activity="run program"
80 $SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii $TESTFILE
81 if [ $? -ne 0 ] ; then no_result ; fi
82
83
84 activity="check results"
85 diff -B -b $TEMPDIR/pspp.list - << EOF
86  X FILTER_$
87 -- --------
88  1     1.00 
89  3     1.00 
90  5     1.00 
91  7     1.00 
92  9     1.00 
93
94  X FILTER_$
95 -- --------
96  1     1.00 
97  2      .00 
98  3     1.00 
99  4      .00 
100  5     1.00 
101  6      .00 
102  7     1.00 
103  8      .00 
104  9     1.00 
105 10      .00 
106
107  X FILTER_$
108 -- --------
109  2     1.00 
110  4     1.00 
111  6     1.00 
112  8     1.00 
113 10     1.00 
114
115 EOF
116 if [ $? -ne 0 ] ; then fail ; fi
117
118 pass;