[geos-commits] r2647 - trunk/tests/xmltester

svn_geos at osgeo.org svn_geos at osgeo.org
Thu Oct 1 04:46:35 EDT 2009


Author: strk
Date: 2009-10-01 04:46:35 -0400 (Thu, 01 Oct 2009)
New Revision: 2647

Added:
   trunk/tests/xmltester/safe_to_xml.sh
Log:
Add utility script to import tests from SAFE software


Added: trunk/tests/xmltester/safe_to_xml.sh
===================================================================
--- trunk/tests/xmltester/safe_to_xml.sh	                        (rev 0)
+++ trunk/tests/xmltester/safe_to_xml.sh	2009-10-01 08:46:35 UTC (rev 2647)
@@ -0,0 +1,142 @@
+#!/bin/sh
+
+#######################################################################
+#
+# GEOS - Geometry Engine Open Source
+# http://geos.refractions.net
+#
+# Copyright (C) 2009 Sandro Santilli <strk at keybit.net>
+#
+# This is free software; you can redistribute and/or modify it under
+# the terms of the GNU Lesser General Public Licence as published
+# by the Free Software Foundation. 
+# See the COPYING file for more information.
+#
+#######################################################################
+#
+# This script is an utility to convert SAFE Software testcases to
+# the format accepted by XMLTester
+#
+#######################################################################
+
+if ! test -n "$1"; then
+	echo "Usage: $0 <testno>"
+	exit 1
+fi
+
+SAFETESTNO="$1"
+
+SAFEIN=${SAFETESTNO}_input.txt
+SAFEPARAMS=${SAFETESTNO}_params.txt
+
+if ! test -e ${SAFEIN}; then echo "Missing ${SAFEIN}"; exit 1; fi
+#if ! test -e ${SAFEOUT_LEFT}; then echo "Missing ${SAFEOUT_LEFT}"; exit 1; fi
+#if ! test -e ${SAFEOUT_RIGHT}; then echo "Missing ${SAFEOUT_RIGHT}"; exit 1; fi
+if ! test -e ${SAFEOUT_PARAMS}; then echo "Missing ${SAFEOUT_PARAMS}"; exit 1; fi
+
+
+exec 4< ${SAFEIN}
+
+#exec 5< ${SAFEOUT_LEFT}
+#exec 6< ${SAFEOUT_LEFT}
+
+#echo '<run>'
+#echo '<precisionModel type="FLOATING" />'
+
+# Parse parameters/tests
+TESTS=${SAFEIN}_tests
+exec 7< ${SAFEPARAMS}
+exec 8> ${TESTS}
+arg2=na
+style=na
+opname=na
+while read line <&7; do
+
+	# end of test
+	if test -z "${line}"; then
+		testline="<op name='buffersinglesided' arg1='a' arg2='${arg2}' arg3='4' arg4='${style}'>|${opname}"
+		echo ${testline} >&8
+	fi
+
+	lbl=`echo ${line} | cut -d: -f1`
+	val=`echo ${line} | cut -d: -f2`
+
+	if test "${lbl}" = "Buffer Amount"; then
+
+		arg2=${val}
+
+	elif test "${lbl}" = "Buffer Style"; then
+
+		if test "${val}" = "RIGHT_SIDE_ONLY"; then
+			style=right
+		else
+			style=left
+		fi
+
+	elif test "${lbl}" = "Interpolation Angle"; then
+
+		continue
+
+	else
+
+		opname=`echo ${lbl} | cut -d' ' -f 2 | tr '[A-Z]' ['a-z']`
+		if test "${opname}" = 'left' -o "${opname}" = 'right'; then
+			opname="_${opname}"
+		fi
+
+	fi
+		
+done
+
+testline="<op name='buffersinglesided' arg1='a' arg2='${arg2}' arg3='4' arg4='${style}'>|${opname}"
+echo ${testline} >&8
+
+echo '<run>'
+echo '<precisionModel type="FLOATING" />'
+
+# A case each input
+caseno=1
+while read inp <&4; do
+
+	echo "<case><desc>SAFE test ${SAFETESTNO} line ${caseno}</desc>"
+	echo '<a>'
+
+	# hack until GEOS supports proper OGC WKT: POINT Z (0 0)
+	inp=`echo "${inp}" | sed -e 's/ Z //'`
+	echo ${inp}
+	echo '</a>'
+
+
+	# A test each param
+	exec 9< ${TESTS}
+	while read testspec <&9; do
+
+		test=`echo "${testspec}" | cut -d'|' -f1`
+		out=`echo "${testspec}" | cut -d'|' -f2`
+
+		echo '<test>'
+		echo '  '${test}
+
+		# read line from line ${caseno} of ${SAFEOUT}
+		SAFEOUT=${SAFETESTNO}_output${out}.txt
+		expout=`head -${caseno} ${SAFEOUT} | tail -1`
+
+		# hack until GEOS supports proper OGC WKT: POINT Z (0 0)
+		expout=`echo "${expout}" | sed -e 's/ Z //'`
+
+		echo ${expout}
+
+		echo '  </op>'
+		echo '</test>'
+
+	done
+
+
+	echo '</case>'
+
+	caseno=$((caseno+1))
+
+
+done
+
+echo '</run>'


Property changes on: trunk/tests/xmltester/safe_to_xml.sh
___________________________________________________________________
Added: svn:executable
   + *



More information about the geos-commits mailing list