source: molecuilder/tests/Tesselations/defs.in@ c20eac

Last change on this file since c20eac was 2b0041, checked in by Frederik Heber <heber@…>, 15 years ago

FIX: Don't compare tesselation files directly but rather sorted list of triangle nodes.

  • As the order of the triangle's creation is not fixed (unknown why), the order of the triangle nodes in the tesselation files is not fixed.
  • Hence, checking by diff'ing whether it's the same as the reference is not sensible.
  • Now, we pick out the triangle nodes, sort them and compare against reference.
  • Property mode set to 100644
File size: 2.2 KB
Line 
1# -*- shell-script -*-
2# @configure_input@
3# Set variables and functions to use in tests.
4# This is copied from the TREMOLO project, credits Ralf Wildenhues, modified Frederik Heber.
5#
6case $VERBOSE in
7 x*) set -x ;;
8esac
9
10pathname=$0
11# next two lines not portable
12basename=${pathname##*/}
13#testdir=${basename%.test}
14testdir=${basename%%.*}
15need_testdir="test -d @srcdir@/$testdir"
16testdir_exists="test -d $testdir"
17EXEEXT=@EXEEXT@
18# next 2 lines not portable
19MOLECUILDER=${MOLECUILDER-"@abs_top_builddir@/src/molecuilder$EXEEXT"}
20exec_prefix="@prefix@/bin"
21DEBUG=${DEBUG-false}
22CLEANUP='rm -f stderr stdout'
23
24if $need_testdir
25then
26 if $testdir_exists; then
27 rm -rf $testdir
28 fi
29 mkdir $testdir
30 CLEANUP="$CLEANUP; rm -rf $testdir"
31 cp -r @srcdir@/$testdir/* $testdir/
32 cd $testdir
33 CLEANUP="rm -f stderr stdout diffstderr diffstdout; cd ..; $CLEANUP"
34 CLEANUP="rm -f *.conf*; rm -f NonConvexEnvelope*; rm -f ${testdir}.xyz; rm -f ${testdir}.dbond; $CLEANUP"
35fi
36
37# debug runs should keep results
38if $DEBUG; then :; else
39 trap "eval \"$CLEANUP\"" 0 1 2 13 15
40fi
41
42# TREMOLO_run status [options...]
43# Run tremolo with OPTIONS, fail if it does not exit with STATUS.
44Tesselation_run ()
45{
46 # $1 is exit code
47 # $2 is RADIUS
48
49 expected_exitcode=$1
50 mol=$testdir
51 RADIUS=$2
52 FILENAME="NonConvexEnvelope"
53 exitcode=0
54 cd $RADIUS
55 #echo "Current dir is `pwd`, calling $MOLECUILDER $mol.conf -e $exec_prefix -p ../$mol.xyz -N $RADIUS $FILENAME."
56 if [ -e $mol.dbond ]; then
57 $MOLECUILDER $mol.conf -e $exec_prefix -p ../$mol.xyz -A $mol.dbond -N $RADIUS $FILENAME 2>stderr >stdout || exitcode=$?
58 else
59 $MOLECUILDER $mol.conf -e $exec_prefix -p ../$mol.xyz -N $RADIUS $FILENAME 2>stderr >stdout || exitcode=$?
60 fi
61 #echo "Molecuilder done with exitcode $exitcode."
62 #cat stderr
63 #cat stdout
64 grep -E "^[0-9]* [0-9]* [0-9]*$" ../../../../../molecuilder/tests/Tesselations/$mol/$2/${FILENAME}-$mol.dat | sort -n >reference-triangles.dat
65 grep -E "^[0-9]* [0-9]* [0-9]*$" ${FILENAME}.dat | sort -n >new-triangles.dat
66 diff reference-triangles.dat new-triangles.dat 2>diffstderr >diffstdout || exitcode=$?
67 #echo "Diff done with exitcode $exitcode."
68 #cat diffstderr
69 #cat diffstdout
70 cd ..
71 test $exitcode = $expected_exitcode || exit 1
72}
73
74# can use $LN_S
75
76# vim:set ft=sh:
Note: See TracBrowser for help on using the repository browser.