AUTORECODE: Use Autotest for test suite.
[pspp] / tests / command / examine-extremes.sh
1 #!/bin/sh
2
3 # This program tests  the EXTREME subcommand of the EXAMINE command.
4
5 TEMPDIR=/tmp/pspp-tst-$$
6 TESTFILE=$TEMPDIR/`basename $0`.sps
7
8 # ensure that top_builddir  are absolute
9 if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
10 if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
11 top_builddir=`cd $top_builddir; pwd`
12 PSPP=$top_builddir/src/ui/terminal/pspp
13
14 # ensure that top_srcdir is absolute
15 top_srcdir=`cd $top_srcdir; pwd`
16
17 STAT_CONFIG_PATH=$top_srcdir/config
18 export STAT_CONFIG_PATH
19
20 LANG=C
21 export LANG
22
23 cleanup()
24 {
25      if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
26         echo "NOT cleaning $TEMPDIR" 
27         return ; 
28      fi
29      cd /
30      rm -rf $TEMPDIR
31 }
32
33
34 fail()
35 {
36     echo $activity
37     echo FAILED
38     cleanup;
39     exit 1;
40 }
41
42
43 no_result()
44 {
45     echo $activity
46     echo NO RESULT;
47     cleanup;
48     exit 2;
49 }
50
51 pass()
52 {
53     cleanup;
54     exit 0;
55 }
56
57 mkdir -p $TEMPDIR
58
59 cd $TEMPDIR
60
61 activity="create program"
62 cat > $TESTFILE <<EOF
63 data list free /V1 W
64 begin data.
65 1  1
66 2  1
67 3  2
68 3  1
69 4  1
70 5  1
71 6  1
72 7  1
73 8  1
74 9  1
75 10 1
76 11 1
77 12 1
78 13 1
79 14 1
80 15 1
81 16 1
82 17 1
83 18 2
84 19 1
85 20 1
86 end data.
87
88 weight by w.
89
90 examine v1 
91  /statistics=extreme(6)
92  .
93 EOF
94 if [ $? -ne 0 ] ; then no_result ; fi
95
96
97 activity="run program"
98 $SUPERVISOR $PSPP -o pspp.csv $TESTFILE
99 if [ $? -ne 0 ] ; then no_result ; fi
100
101 activity="compare results"
102 diff -c $TEMPDIR/pspp.csv - << EOF
103 Table: Case Processing Summary
104 ,Cases,,,,,
105 ,Valid,,Missing,,Total,
106 ,N,Percent,N,Percent,N,Percent
107 V1,23.00,100%,.00,0%,23.00,100%
108
109 Table: Extreme Values
110 ,,,Case Number,Value
111 V1,Highest,1,21,20.00
112 ,,2,20,19.00
113 ,,3,19,18.00
114 ,,4,19,18.00
115 ,,5,18,17.00
116 ,,6,17,16.00
117 ,Lowest,1,1,1.00
118 ,,2,2,2.00
119 ,,3,3,3.00
120 ,,4,3,3.00
121 ,,5,4,3.00
122 ,,6,5,4.00
123 EOF
124 if [ $? -ne 0 ] ; then fail ; fi
125
126 pass