a2db6391bdf4d98fc25a7ecdad09e768c38e1743
[pspp-builds.git] / tests / bugs / random.sh
1 #!/bin/sh
2
3 # This program tests for a bug which caused UNIFORM(x) to always return zero.
4
5
6 TEMPDIR=/tmp/pspp-tst-$$
7 TESTFILE=$TEMPDIR/`basename $0`.sps
8
9 here=`pwd`;
10
11 # ensure that top_srcdir is absolute
12 cd $top_srcdir; top_srcdir=`pwd`
13
14 STAT_CONFIG_PATH=$top_srcdir/config
15 export STAT_CONFIG_PATH
16
17
18 cleanup()
19 {
20      rm -rf $TEMPDIR
21 }
22
23
24 fail()
25 {
26     echo $activity
27     echo FAILED
28     cleanup;
29     exit 1;
30 }
31
32
33 no_result()
34 {
35     echo $activity
36     echo NO RESULT;
37     cleanup;
38     exit 2;
39 }
40
41 pass()
42 {
43     cleanup;
44     exit 0;
45 }
46
47 mkdir -p $TEMPDIR
48
49 cd $TEMPDIR
50
51 activity="create program"
52 cat > $TESTFILE <<EOF
53 set seed=10.
54 input program.
55 + loop #i = 1 to 20.
56 +    do repeat response=R1.
57 +       compute response = uniform(10).
58 +    end repeat.
59 +    end case.
60 + end loop.
61 + end file.
62 end input program.                                                              
63
64 list.
65 EOF
66 if [ $? -ne 0 ] ; then no_result ; fi
67
68 activity="run program"
69 $SUPERVISOR $here/../src/pspp -o raw-ascii $TESTFILE
70 if [ $? -ne 0 ] ; then no_result ; fi
71
72
73 activity="compare output"
74 diff -b -B -w $TEMPDIR/pspp.list - << EOF
75       R1
76 --------
77      7.71 
78      2.99 
79       .21 
80      4.95 
81      6.34 
82      4.43 
83      7.49 
84      8.32 
85      4.99 
86      5.83 
87      2.25 
88       .25 
89      1.98 
90      7.09 
91      7.61 
92      2.66 
93      1.69 
94      2.64 
95       .88 
96      1.50 
97
98 EOF
99 if [ $? -ne 0 ] ; then fail ; fi
100
101 pass;