diff --git a/dotests b/dotests new file mode 100755 index 0000000..8e2b22f --- /dev/null +++ b/dotests @@ -0,0 +1,34 @@ +#!/bin/bash + +MAKEMAP="${1:-/tmp/save/build/src/makemap}" +TPATH=tests + +SCRW=`tput cols` + +set -o pipefail + +for n in "$TPATH"/*; do + status=`cat $n|grep "# Status: "|sed "s/# Status: //"` + desc=`cat $n|grep "# Description: "|sed "s/# Description: //"` + hash=`cat $n|grep "# Output hash: "|sed "s/.*: //"` + while [ ${#desc} -lt $((SCRW-5)) ]; do desc+=" "; done + echo -n "$desc" + t=`mktemp` + grep -v -E "# .*: " "$n">$t + thash=`$MAKEMAP "$t" 2>&1 | sha256sum|sed "s/ .*//"` + ret=$? + if [ "$status" == "ok" ]; then + if [ "$hash" == "$thash" -a "$ret" == "0" ]; then + echo -e "\033[32mOk \033[0m" + else + echo -e "\033[31mFail\033[0m" + fi + else + if [ "$hash" == "$thash" -a "$ret" != "0" ]; then + echo -e "\033[32mOk \033[0m" + else + echo -e "\033[31mFail\033[0m" + fi + fi + rm $t +done diff --git a/maketest b/maketest new file mode 100755 index 0000000..2a83959 --- /dev/null +++ b/maketest @@ -0,0 +1,34 @@ +#!/bin/bash + +name="$1" +desc="$2" +TLOC="${3:-/tmp/save/test}" +MAKEMAP="${4:-/tmp/save/build/src/makemap}" + +if [ -f tests/"$name" ]; then + echo "Test $name already exist." + exit 1 +fi + +if [ ! -f "$TLOC" ]; then + echo "Configuration file $TLOC not found." + exit 2 +fi + +if [ ! -x "$MAKEMAP" ]; then + echo "Can't exec file $MAKEMAP." + exit 3 +fi + +echo "# Description: $desc" >tests/$name +if "$MAKEMAP" "$TLOC" &>/dev/null; then + hash=`"$MAKEMAP" "$TLOC" 2>/dev/null|sha256sum|sed "s/ .*//"` + status=ok +else + hash=`"$MAKEMAP" "$TLOC" 2>&1|sha256sum|sed "s/ .*//"` + status=fail +fi +echo "# Status: $status" >>tests/$name +echo "# Output hash: $hash" >>tests/$name +cat "$TLOC" >>tests/$name + \ No newline at end of file diff --git a/tests/GMTCoord b/tests/GMTCoord new file mode 100644 index 0000000..55a4acc --- /dev/null +++ b/tests/GMTCoord @@ -0,0 +1,11 @@ +# Description: Coord tests. Must passed. +# Status: ok +# Output hash: 1a1ca4aba24d0fe39407eef250167aca5c21373722f5f2a9bd6495cee34abaf2 +@use "gmt" + +a=Coord("10:30:18"); +b=Coord(10.5); +c=Coord(":10:10"); +d=Coord("-0:15:18"); + +print(a,a.n,b,b.n,c,c.n,d,d.n); diff --git a/tests/GMTCoord_e1 b/tests/GMTCoord_e1 new file mode 100644 index 0000000..6ecf66b --- /dev/null +++ b/tests/GMTCoord_e1 @@ -0,0 +1,8 @@ +# Description: Non-integer degrees in dd:mm:ss mode. +# Status: fail +# Output hash: 9469953f706df02349e019f8b47a499d169113b654aee46cacb966d01a27848c +@use "gmt" + +a=Coord("1.0:10"); + +print(a); \ No newline at end of file diff --git a/tests/GMTRegion1 b/tests/GMTRegion1 new file mode 100644 index 0000000..c8e0f3e --- /dev/null +++ b/tests/GMTRegion1 @@ -0,0 +1,10 @@ +# Description: Global regions test. +# Status: ok +# Output hash: e661246caef9b2a5fa5a96b9d75c0542d2e0e655de9d63d755aff01cd3b4ceba +@use "gmt" + +r1=Region("global"); +r2=Region("global360"); +r3=Region("global180"); + +print(r1,r1.xb,r1.xe,r2,r2.xb,r2.xe,r3,r3.xb,r3.xe); diff --git a/tests/GMTRegion2 b/tests/GMTRegion2 new file mode 100644 index 0000000..c5abcba --- /dev/null +++ b/tests/GMTRegion2 @@ -0,0 +1,9 @@ +# Description: Test sequential form of Region. +# Status: ok +# Output hash: a8006abe2c42b9e34c692ab88cf2f869ad6a01d1f32e6da842c1320f0d253d1c +@use "gmt" + +r1=Region("10:30",20.5,-10.5,100,"bbox"); +r2=Region("10:30",-10.5,20.5,100); + +print(r1,r2,r1.yb,r2.yb); diff --git a/tests/GMTRegion3 b/tests/GMTRegion3 new file mode 100644 index 0000000..13c3232 --- /dev/null +++ b/tests/GMTRegion3 @@ -0,0 +1,13 @@ +# Description: Check named pairs form of Region. +# Status: ok +# Output hash: cf4acbeb2da3156fe52f1f374d4dc83a1aa0ee129a8aa2b1975ec828dd23cabe +@use "gmt" + +r=Region("10:30",-10.5,20.5,100); +r1=Region(r,type="bbox"); +r2=Region(r,type="global180"); +r3=Region(r,ye=80.5); +l=(xb=r.xb.n-0.5,(xe=20+r.xb.n-10,yb=-10),(ye="11:30:28")); +rr=Region(l, type="bbox"); + +print(r,r1,r2,r3,rr); diff --git a/tests/GMTRegion_e1 b/tests/GMTRegion_e1 new file mode 100644 index 0000000..6d3b984 --- /dev/null +++ b/tests/GMTRegion_e1 @@ -0,0 +1,8 @@ +# Description: Check string argument in sequential form of Region. +# Status: fail +# Output hash: 8421e39ea376a83938c3d79d803749f038ecd493a490228add4b8d179d4e8f75 +@use "gmt" + +r=Region("10:30",-10.5,20.5,100,"global"); + +print(r);