#include <cassert>
#include <iostream>
using namespace std; 

#include <commandline.h>
#include <tetrahedrontest.h>
#include <triangletest.h>
#include <zero.h>


template<>
double zero<double>::val = 1E-15;

int main(int argc, char** argv)
{
  commandline cmd(argc,argv);
  uint prog(0);
  cmd.mapvar(prog,"prog");

  switch (prog)
  {
    case 0:
      cout << "./main prog=1  Display the triangles properties." << endl;
      cout << "./main prog=2  Display the triangles centers as points." << endl;
      cout << "./main prog=3  Test triangle3D displaying triangle properties." << endl;
      cout << "./main prog=11 Experimental tetrahedron center display." << endl;
      cout << "./main prog=12 Experimental tetrahedron center display." << endl;
      break;

    case 1: triangletest().test01(argc,argv); break;
    case 2: triangletest().test02(argc,argv); break;
    case 3: triangletest().test03(argc,argv); break;
    case 11: tetrahedrontest().test01(argc,argv); break; 
    case 12: tetrahedrontest().test02(argc,argv); break; 

    default: cout << "error:  No case handled." << endl; return 1;
  }


  return 0;
}



