1#! /bin/sh
2#
3# Check CNF (long check - all methods involved):
4#   Load BDDs
5#   Store corresponding CNF in different format:
6#     NodeByNode method -> file 4.node1.tmp
7#     MaxtermByMaxterm -> file 4.max1.tmp
8#     Best with different options:
9#       MaxEdge=-1 MaxPath= 0 -> similar to NodeByNode -> file 4.node2.tmp
10#       MaxEdge= 0 MaxPath=-1 -> similar to NodeByNode -> file 4.node3.tmp
11#       MaxEdge=-1 MaxPath=-1 -> = MaxtermByMaxterm -> file 4.max2.tmp
12#       MaxEdge= 1 MaxPath=-1 -> = Original Best -> file 4.best1.tmp
13#       MaxEdge= 1 MaxPath= 2 -> = Original Best, With Path Shorter than 3
14#                                  file 4.best2.tmp
15#   Read CNF
16#   Store corresponding BDD
17#   Compare original and final BDDs
18#
19
20EXE=@EXEEXT@
21srcdir=@top_srcdir@
22where=${srcdir}/dddmp/exp
23dest=.
24exitval=0
25
26echo "---------------------------------------------------------------------------"
27echo "--------------------- TESTING Load BDD and Store CNF ----------------------"
28echo "---------------------------------------------------------------------------"
29../testdddmp$EXE << END1
30mi
31150
32hlc
33${where}/4.cnf.bis
34bl
35${where}/4.bdd
360
37cs
38${dest}/4.node1.tmp
390
40N
41100
42cs
43${dest}/4.max1.tmp
440
45M
46100
47cs
48${dest}/4.node2.tmp
490
50B
51-1
520
53100
54cs
55${dest}/4.node3.tmp
560
57B
580
59-1
60100
61cs
62${dest}/4.max2.tmp
630
64B
65-1
66-1
67100
68cs
69${dest}/4.best1.tmp
700
71B
721
73-1
74100
75cs
76${dest}/4.best2.tmp
770
78B
791
802
81100
82mq
83quit
84END1
85test $? != 1 && exitval=1
86echo "---------------------------------------------------------------------------"
87echo "--------------------- TESTING Load CNF and Store BDD ----------------------"
88echo "---------------------------------------------------------------------------"
89../testdddmp$EXE << END2
90mi
91150
92hlc
93${dest}/4.node2.tmp
94cl
95${dest}/4.node2.tmp
960
97hw
98bs
99${dest}/4.node2.bdd.tmp
1000
101mq
102quit
103END2
104test $? != 1 && exitval=1
105../testdddmp$EXE << END3
106mi
107150
108hlc
109${dest}/4.node3.tmp
110cl
111${dest}/4.node3.tmp
1120
113hw
114bs
115${dest}/4.node3.bdd.tmp
1160
117mq
118quit
119END3
120test $? != 1 && exitval=1
121../testdddmp$EXE << END4
122mi
123150
124hlc
125${dest}/4.best1.tmp
126cl
127${dest}/4.best1.tmp
1280
129hw
130bs
131${dest}/4.best1.bdd.tmp
1320
133mq
134quit
135END4
136test $? != 1 && exitval=1
137../testdddmp$EXE << END5
138mi
139150
140hlc
141${dest}/4.best2.tmp
142cl
143${dest}/4.best2.tmp
1440
145hw
146bs
147${dest}/4.best2.bdd.tmp
1480
149mq
150quit
151END5
152test $? != 1 && exitval=1
153echo "----------------------------- ... RESULTS ... -----------------------------"
154diff --strip-trailing-cr --brief ${where}/4.max1 ${dest}/4.max1.tmp
155test $? != 0 && exitval=1
156diff --strip-trailing-cr --brief ${where}/4.max2 ${dest}/4.max2.tmp
157test $? != 0 && exitval=1
158diff --strip-trailing-cr --brief ${where}/4.bdd.bis1 ${dest}/4.node2.bdd.tmp
159test $? != 0 && exitval=1
160diff --strip-trailing-cr --brief ${where}/4.bdd.bis2 ${dest}/4.node3.bdd.tmp
161test $? != 0 && exitval=1
162diff --strip-trailing-cr --brief ${where}/4.bdd.bis3 ${dest}/4.best1.bdd.tmp
163test $? != 0 && exitval=1
164diff --strip-trailing-cr --brief ${where}/4.bdd.bis4 ${dest}/4.best2.bdd.tmp
165test $? != 0 && exitval=1
166echo "-------------------------------- ... END ----------------------------------"
167rm -f ${dest}/4.max1.tmp ${dest}/4.max2.tmp ${dest}/4.node2.bdd.tmp \
168   ${dest}/4.node3.bdd.tmp ${dest}/4.best1.bdd.tmp ${dest}/4.best2.bdd.tmp \
169   ${dest}/4b.bdd.tmp ${dest}/4.best1.tmp ${dest}/4.best2.tmp \
170   ${dest}/4.node1.tmp ${dest}/4.node2.tmp ${dest}/4.node3.tmp
171exit $exitval
172