#include "Sundance.h"
#include "InvCellJacobian.h"
#include "Point.h"
#include "GaussTriangleQuadrature.h"
#include "GaussLineQuadrature.h"
#include "GaussTetQuadrature.h"
#include "Testing.h"

/*

Tests of certain bits of low-level code.

 */

int main(int argc, void** argv)
{
  try
    {
      PMachine::init(&argc, &argv);

      // inverses of CellJacobians
      Testing::unitTest("CellJacobian", CellJacobian::unitTest());
			
      // vector arithmetic with Point objects
      Testing::unitTest("Point", Point::unitTest());

      // quadrature of constant and quadratic functions on reference cells.
      Testing::unitTest("GaussTriangleQuadrature", 
                        GaussTriangleQuadrature::unitTest());
      Testing::unitTest("GaussLineQuadrature", 
                        GaussLineQuadrature::unitTest());
      Testing::unitTest("GaussTetQuadrature", GaussTetQuadrature::unitTest());
    }
  catch(exception& e)
    {
      e.print();
      Testing::crash(__FILE__);
    }
}

