#!/bin/sh
# autopkgtest check: Build and run a program
# (C) 2014 Anton Gladky
# Author: Anton Gladky <gladk@debian.org>

set -e

WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR
cat <<EOF > block.stl
SOLID  Untitled1
  FACET NORMAL  0.00000000E+00  0.00000000E+00  1.00000000E+00
    OUTER LOOP
      VERTEX -1.96850394E+00  1.96850394E+00  1.96850394E+00
      VERTEX -1.96850394E+00 -1.96850394E+00  1.96850394E+00
      VERTEX  1.96850394E+00 -1.96850394E+00  1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  0.00000000E+00 -0.00000000E+00  1.00000000E+00
    OUTER LOOP
      VERTEX  1.96850394E+00 -1.96850394E+00  1.96850394E+00
      VERTEX  1.96850394E+00  1.96850394E+00  1.96850394E+00
      VERTEX -1.96850394E+00  1.96850394E+00  1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  0.00000000E+00 -0.00000000E+00 -1.00000000E+00
    OUTER LOOP
      VERTEX  1.96850394E+00  1.96850394E+00 -1.96850394E+00
      VERTEX  1.96850394E+00 -1.96850394E+00 -1.96850394E+00
      VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  0.00000000E+00  0.00000000E+00 -1.00000000E+00
    OUTER LOOP
      VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
      VERTEX -1.96850394E+00  1.96850394E+00 -1.96850394E+00
      VERTEX  1.96850394E+00  1.96850394E+00 -1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL -1.00000000E+00  0.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX -1.96850394E+00  1.96850394E+00 -1.96850394E+00
      VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
      VERTEX -1.96850394E+00 -1.96850394E+00  1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL -1.00000000E+00  0.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX -1.96850394E+00 -1.96850394E+00  1.96850394E+00
      VERTEX -1.96850394E+00  1.96850394E+00  1.96850394E+00
      VERTEX -1.96850394E+00  1.96850394E+00 -1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  1.00000000E+00  0.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX  1.96850394E+00  1.96850394E+00  1.96850394E+00
      VERTEX  1.96850394E+00 -1.96850394E+00  1.96850394E+00
      VERTEX  1.96850394E+00 -1.96850394E+00 -1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  1.00000000E+00  0.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX  1.96850394E+00 -1.96850394E+00 -1.96850394E+00
      VERTEX  1.96850394E+00  1.96850394E+00 -1.96850394E+00
      VERTEX  1.96850394E+00  1.96850394E+00  1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  0.00000000E+00 -1.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX -1.96850394E+00 -1.96850394E+00  1.96850394E+00
      VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
      VERTEX  1.96850394E+00 -1.96850394E+00 -1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  0.00000000E+00 -1.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX  1.96850394E+00 -1.96850394E+00 -1.96850394E+00
      VERTEX  1.96850394E+00 -1.96850394E+00  1.96850394E+00
      VERTEX -1.96850394E+00 -1.96850394E+00  1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  0.00000000E+00  1.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX -1.96850394E+00  1.96850394E+00 -1.96850394E+00
      VERTEX -1.96850394E+00  1.96850394E+00  1.96850394E+00
      VERTEX  1.96850394E+00  1.96850394E+00  1.96850394E+00
    ENDLOOP
  ENDFACET
  FACET NORMAL  0.00000000E+00  1.00000000E+00  0.00000000E+00
    OUTER LOOP
      VERTEX  1.96850394E+00  1.96850394E+00  1.96850394E+00
      VERTEX  1.96850394E+00  1.96850394E+00 -1.96850394E+00
      VERTEX -1.96850394E+00  1.96850394E+00 -1.96850394E+00
    ENDLOOP
  ENDFACET
ENDSOLID  Untitled1
EOF

cat <<EOF > regression_test_output_etalon
ADMesh comes with NO WARRANTY.  This is free software, and you are welcome to
redistribute it under certain conditions.  See the file COPYING for details.
Opening block.stl
Checking exact...
All facets connected.  No nearby check necessary.
No unconnected need to be removed.
No holes need to be filled.
Checking normal directions...
Checking normal values...
Calculating volume...
Verifying neighbors...

Input file         : block.stl
File type          : ASCII STL file
Header             : SOLID  Untitled1
============== Size ==============
Min X = -1.968504, Max X =  1.968504
Min Y = -1.968504, Max Y =  1.968504
Min Z = -1.968504, Max Z =  1.968504
========= Facet Status ========== Original ============ Final ====
Number of facets                 :    12                  12
Facets with 1 disconnected edge  :     0                   0
Facets with 2 disconnected edges :     0                   0
Facets with 3 disconnected edges :     0                   0
Total disconnected facets        :     0                   0
=== Processing Statistics ===     ===== Other Statistics =====
Number of parts       :     1        Volume   :  61.023746
Degenerate facets     :     0
Edges fixed           :     0
Facets removed        :     0
Facets added          :     0
Facets reversed       :     0
Backwards edges       :     0
Normals fixed         :     0
EOF

admesh block.stl > regression_test_output_current
# delete lines containing the ADMesh version
sed -i '/version/d' regression_test_output_current
DIFFRESULT=`diff regression_test_output_current regression_test_output_etalon`
if [ "$DIFFRESULT" != "" ]; then
  rm regression_test_output_current
	echo 'Regression test FAILED!'
	exit 1
else
	rm regression_test_output_current
  echo "Regression test PASSED!"
	exit 0
fi
echo "run: OK"
