/* This file is part of the Neper software package. */
/* Copyright (C) 2003-2014, Romain Quey. */
/* See the COPYING file in the top-level directory. */

#include"ned_testing_.h"

void
ned_testing_list_t (char **ppretest0, char ***ppretests, char ***ptests,
		    char ***ptestdeps, int *ptestqty)
{
  (*ptestqty) = 0;
  (*ptests) = ut_alloc_2d_char (200, 1000);
  (*ptestdeps) = ut_alloc_2d_char (200, 1000);
  (*ppretests) = ut_alloc_2d_char (200, 1000);

  (*ppretest0) = ut_alloc_1d_char (1000);
  strcpy (*ppretest0,
	  "gsl-randist 1 NNN flat 0 1 > coo1;\
	   gsl-randist 2 NNN flat 0 1 > coo2;\
	   gsl-randist 3 NNN flat 0 1 > coo3;\
	   paste coo1 coo2 coo3 > coo;\
	   rm coo1 coo2 coo3");

  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho equiaxed");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho 'columnar(x)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho 'columnar(y)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho 'columnar(z)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho 'bamboo(x)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho 'bamboo(y)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho 'bamboo(z)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n w=0.1 -id 1 -morpho lamella");

  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "-n 'NNN^0.3333' -id 1 -morpho cube");
  strcpy ((*ptests)[(*ptestqty)++], "-n 'NNN^0.3333' -id 1 -morpho tocta");
  strcpy ((*ptests)[(*ptestqty)++], "-n 'NNN^0.5' -id 1 -morpho square");

  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -morpho @coo");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -dim 2");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -dim 1");

  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -hardcore '0.1/(NNN^0.333)'");

  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -centroid 1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -centroid 1 -centroidf 0.1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -centroid 1 -centroidc 0.1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -centroid 1 -centroidi 10");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -dim 2 -centroid 1");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 2 -centroid 1 -centroidf 0.1");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 2 -centroid 1 -centroidc 0.1");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 2 -centroid 1 -centroidi 10");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 1 -centroid 1 -centroidf 0.1");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 1 -centroid 1 -centroidc 0.1");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 1 -centroid 1 -centroidi 10");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -ttype standard");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -for tess");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -for tesr -o nNNN-id1-in");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -for tess,tesr");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -for tesr -ttype periodic");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -for tesr -ttype subdomain");
  // loadtess
  strcpy ((*ptests)[(*ptestqty)++], "-loadtesr nNNN-id1-in.tesr -for tesr -o foo");
  strcpy ((*ptests)[(*ptestqty)++], "-loadtesr 'nNNN-id1-in.tesr:crop(1|2|1|2|1|2)' -for tesr -o foo");

  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "-loadtesr 'nNNN-id1-in.tesr:scale(1/2|1/3)' -for tesr -o foo");

  // loadpoint
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -domain 'cube(1,2,3)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -domain 'cylinder(1,2)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -domain 'cylinder(1,2,10)'");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 2 -domain 'square(1,2)'");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 1 -domain 'segment(2)'");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -dim 2 -domain 'circle(2)'");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -dim 2 -domain 'circle(2,10)'");
  // domain planes
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -scale 1:2:3");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -dim 2 -scale 1:2");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -dim 1 -scale 2");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -sort z");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -randomize 0.01:1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -reg 1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -reg 1 -fmax 2");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -reg 1 -sel 0.1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -reg 1 -rsel 0.05");

  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -reg 1 -sel 0.1,id>10:0.05");

  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -reg 1 -rsel 0.05,id>10:0.025");

  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -reg 1 -mloop 1");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -o foo");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format geo");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format ply");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format obj");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format 3dec");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format tesr");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format ori");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format tesr -tesrformat ascii");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format tesr -tesrformat binary8");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format tesr -tesrformat binary16");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format tesr -tesrformat binary32");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format tesr -tesrsize 10");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format ori -oricrysym cubic");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -format ori -orides R");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format ori -oriformat plain");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format ori -oriformat geof");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format ori -oriformat fepx");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format ori -ori 3D");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -format ori -ori \"fibre(x,1,1,0)\"");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -statver id,x,y,z,true,body,state,domtype,edgenb,facenb,polynb");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -statedge id,x,y,z,true,body,state,domtype,length,cyl,vernb,facenb,polynb");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -statface id,x,y,z,true,body,state,domtype,area,ff,vernb,edgenb,polynb,diameq,circularity");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -statpoly id,x,y,z,true,body,state,vol,vernb,edgenb,facenb,verlist,edgelist,facelist,npolylist,facearealist,faceeqlist,area,diameq,sphericity");
  strcpy ((*ptests)[(*ptestqty)++],
	  "-n NNN -id 1 -statcell id,x,y,z,true,body,state,vol,vernb,edgenb,facenb,verlist,edgelist,facelist,npolylist,facearealist,faceeqlist,diameq,sphericity");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -statcell id,x,y,z,vol -for tesr");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -statseed id,x,y,z,w");
  strcpy ((*ptests)[(*ptestqty)++], "-n NNN -id 1 -statpoint id,x,y,z,poly");
  // checktess

  return;
}

void
ned_testing_list_m (char **ppretest0, char ***ppretests, char ***ptests,
		    char*** ptestdeps, int *ptestqty)
{
  (*ptestqty) = 0;
  (*ptests) = ut_alloc_2d_char (100, 1000);
  (*ppretests) = ut_alloc_2d_char (100, 1000);
  (*ptestdeps) = ut_alloc_2d_char (100, 1000);

  (*ppretest0) = ut_alloc_1d_char (1000);
  strcpy (*ppretest0, "neper --rcfile none -T -n NNN -id 1 -for tess,tesr -tesrsize 10;\
                       neper --rcfile none -T -n NNN -id 1 -dim 1 -for tess,tesr -tesrsize NNN*10 -o nNNN-id1-dim1;\
                       neper --rcfile none -T -n NNN -id 1 -dim 2 -for tess,tesr -tesrsize NNN*10 -filter size -o nNNN-id1-dim2;\
                       neper --rcfile none -M nNNN-id1.tess -o nNNN-id1-in -dim 0,1,2,3 -statnode x,y,z;\
		       awk '{print $2,$1+0.5*$2*$3,$3}' nNNN-id1-in.stnode > nNNN-id1-in.coo");

  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess");
  // loadmesh
  // loadpoint
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -elt hex");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -cl 0.5");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -rcl 0.7");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -elt hex -cl 0.5");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -elt hex -rcl 0.7");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim2.tess -elt hex -cl 0.5");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim2.tess -elt hex -rcl 0.7");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim1.tess -elt hex -cl 0.5");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim1.tess -elt hex -rcl 0.7");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -cl 0.25,id==2:0.5");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -rcl 1,id==2:0.7");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -dim 1,2");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -dim all");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -dim inputdim");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -order 2");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -dim 2 -order 2");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -elt hex -order 2");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim2.tess -elt hex -order 2");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim1.tess -elt hex -order 2");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -pl 1");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -clratio 1:0.5:0.25");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -clmin 0.5");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -meshqualmin 0");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -meshqualexpr Osize");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -meshqualdisexpr dis");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -mesh2dalgo mead");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -mesh2dalgo dela");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -mesh2dalgo fron");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -mesh3dalgo netg");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -mesh3dalgo netg:netg");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -mesh3dalgo netg:gmsh");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -mesh3dalgo netg:gmne");
  // clean
  // dupnodemerge
  // singnodedup
  strcpy ((*ptestdeps)[(*ptestqty)], "libscotch");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -part 4");

  strcpy ((*ptestdeps)[(*ptestqty)], "libscotch");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -part 2:2");

  strcpy ((*ptestdeps)[(*ptestqty)], "libscotch");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -part 2 -partbalan 0");

  strcpy ((*ptestdeps)[(*ptestqty)], "libscotch");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim2.tess -part 4");

  strcpy ((*ptestdeps)[(*ptestqty)], "libscotch");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim1.tess -part 4");

  // transport
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -o foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -for inp");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -for geof");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -for fepx");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-in.msh -for tess,msh -o foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1-in.msh:nNNN-id1-in.coo -o foo -for tess,msh");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1-in.msh:nNNN-id1-in.coo -clratio 2:1:0.5 -o foo -for tess,msh");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -nset faces,edges");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -nset x0,y1z1,vertices");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -nset all");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -faset z0");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statnode id,x,y,z,dim,2dmeshp,2dmeshd,2dmeshv,2dmeshn");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelt id,x,y,z");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelt0d id,x,y,z,elset0d,true,body,domtype");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelt1d id,x,y,z,elset1d,length,true,body,domtype");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelt2d id,x,y,z,elset2d,area,true,body,domtype");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelt3d id,x,y,z,elset3d,vol,rr,true,body,2dmeshp,2dmeshd,2dmeshv,2dmeshn");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelset id,x,y,z");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelset0d id,x,y,z,eltnb,true,body,domtype");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelset1d id,x,y,z,length,eltnb,true,body,domtype");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelset2d id,x,y,z,eltnb,true,body,domtype");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statelset3d id,x,y,z,vol,eltnb,rrav,rrmin,rrmax,Osize,eltnb,true,body");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -statpoint id,x,y,z,elt3d,elset3d,2dmeshp,2dmeshd,2dmeshv,2dmeshn");

  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tesr -elt hex -cl 0.1");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim1.tesr -rcl 0.7 -for msh,geof,inp");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1-dim2.tesr -rcl 0.7 -for msh,geof,inp");

  return;
}

void
ned_testing_list_v (char **ppretest0, char ***ppretests, char ***ptests,
		    char*** ptestdeps, int *ptestqty)
{
  (*ptestqty) = 0;
  (*ptests) = ut_alloc_2d_char (200, 1000);
  (*ppretests) = ut_alloc_2d_char (200, 1000);
  (*ptestdeps) = ut_alloc_2d_char (200, 1000);

  (*ppretest0) = ut_alloc_1d_char (1000);
  strcpy (*ppretest0,
	  "neper --rcfile none -T -n NNN -id 1 -for tess,ori -statpoly z -statcell z  \
	         -reg 1 -statface z -statedge z -statver z;\
	   neper --rcfile none -T -n NNN -id 1 -for tess,ori -dim 2\
	         -o nNNN-id1-dim2;\
	   neper --rcfile none -T -n NNN -id 1 -for tess,ori -dim 1\
	         -o nNNN-id1-dim1;\
	   neper --rcfile none -M nNNN-id1.tess -dim 0,1,2,3 \
		 -statelt3d z -statelset3d z -statelt2d z -statelset2d z\
		 -statelt1d z -statelset1d z -statelt0d z -statelset0d z\
		 -statelt z -statelset z -statnode x,y,z;               \
		 awk '{print $1,$2,$3*1.1}' nNNN-id1.stnode > coo;      \
		 awk '{print $1}' coo > nNNN-id1.stnode;\
		 awk '{print \"10 20 30\"}' nNNN-id1.stelt3d > eltori;\
		 awk '{print \"1 1 0 0 0 1\"}' nNNN-id1.stelt3d > eltorim;\
		 awk '{print \"1 0 0 0\"}' nNNN-id1.stelt3d > eltoriq;\
		 awk '{print \"1 0 0 0 1 0 0 0 1\"}' nNNN-id1.stelt3d > eltorig;\
		 echo 0.1 0.2 0.3 0.4 0.5 0.6 > pt;");

  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -print foo");
  // -datapoly*

  // -dataface*
  char* entity = ut_alloc_1d_char (10);
  int dim, i;
  for (dim = 4; dim >= 0; dim--)
  {
    if (dim == 0)
      strcpy (entity, "ver");
    else if (dim == 1)
      strcpy (entity, "edge");
    else if (dim == 2)
      strcpy (entity, "face");
    else if (dim == 3)
      strcpy (entity, "poly");
    else if (dim == 4)
      strcpy (entity, "cell");

    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol blue -print foo", entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol '100|200|50' -print foo", entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol id -print foo", entity, entity);
    if (!strcmp (entity, "poly"))
      sprintf ((*ptests)[(*ptestqty)++],
	      "nNNN-id1.tess -showcell none -show%s all -data%scol ori:nNNN-id1.ori -print foo", entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol scal:nNNN-id1.st%s -print foo", entity, entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol scal:nNNN-id1.st%s -data%scolscheme black,white -print foo", entity, entity, entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol scal:nNNN-id1.st%s -data%sscale -1:1 -print foo", entity, entity, entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol scal:nNNN-id1.st%s -data%sscale 0:0.1:1 -print foo", entity, entity, entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol scal:nNNN-id1.st%s -data%sscaletitle foo -print foo", entity, entity, entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.tess -showcell none -show%s all -data%scol id -data%strs 0.5 -print foo", entity, entity, entity);
    if (!strcmp (entity, "poly"))
      sprintf ((*ptests)[(*ptestqty)++],
	      "nNNN-id1.tess -showcell none -show%s all -data%scol ori:nNNN-id1.ori -data%strs 0.5 -print foo", entity, entity, entity);
  }
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -showver all -dataverrad 0.05 -datavercol id -dataedgerad 0.02 -dataedgecol id -datapolycol id -print foo");

  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1-dim2.tess -datafacecol id -print foo");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1-dim1.tess -dataedgecol id -print foo");

  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -showcsys 1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -showcsys 1 -datacsyscoo 0.1:0.2:0.3 -print foo");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -showcsys 1 -datacsyslength 1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -showcsys 1 -datacsysrad 0.1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -showcsys 1 -datacsyslabel foo:bar:baz -print foo");
  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess -showcsys 1 -datacsyscol red -print foo");

  strcpy ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.tess,pt -showpoint all -datapointcol red -datapointrad 0.1 -print foo");

  // mesh
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.msh -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -print foo");

  for (i = 9; i >= -1; i--)
  {
    if (i == -1)
      strcpy (entity, "node");
    else if (i >= 0 && i <= 3)
      sprintf (entity, "elt%dd", i);
    else if (i >= 4 && i <= 7)
      sprintf (entity, "elset%dd", i - 4);
    else if (i == 8)
      sprintf (entity, "elt");
    else if (i == 9)
      sprintf (entity, "elset");

    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.msh -showelt none -show%s all -data%scol id -print foo", entity, entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.msh -showelt none -show%s all -data%scol scal:nNNN-id1.st%s -print foo", entity, entity,entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.msh -showelt none -show%s all -data%scol scal:nNNN-id1.st%s -data%scolscheme black,white -print foo", entity, entity, entity,entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.msh -showelt none -show%s all -data%scol scal:nNNN-id1.st%s -data%sscale -1:1 -print foo", entity, entity, entity,entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.msh -showelt none -show%s all -data%scol scal:nNNN-id1.st%s -data%sscale 0:0.1:1 -print foo", entity, entity, entity,entity);
    sprintf ((*ptests)[(*ptestqty)++],
	    "nNNN-id1.msh -showelt none -show%s all -data%scol scal:nNNN-id1.st%s -data%sscaletitle foo -print foo", entity, entity, entity,entity);
    if (i == 3)
      sprintf ((*ptests)[(*ptestqty)++],
	      "nNNN-id1.msh -showelt none -show%s all -data%scol ori:eltori -print foo", entity, entity);
    if (i == 7)
      sprintf ((*ptests)[(*ptestqty)++],
	      "nNNN-id1.msh -showelt none -show%s all -data%scol ori:nNNN-id1.ori -print foo", entity, entity);

    if (i == 2 || i == 3)
    {
      sprintf ((*ptests)[(*ptestqty)++],
	      "nNNN-id1.msh -showelt none -show%s all -data%sedgecol blue -print foo", entity,entity);
      sprintf ((*ptests)[(*ptestqty)++],
	      "nNNN-id1.msh -showelt none -show%s all -data%sedgerad 0.01 -print foo", entity,entity);
    }
  }
  sprintf ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.msh -datanodecoo coo -print foo");
  sprintf ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.msh -datanodecoo disp:coo -print foo");
  sprintf ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.msh -datanodecoo coo -datanodecoofact 2 -print foo");

  // -slice and -show
  sprintf ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.msh -dataelset3dcol id -slicemesh 'x=0.2,y=0.4,z=0.6' -print foo");
  sprintf ((*ptests)[(*ptestqty)++],
	  "nNNN-id1.msh -dataelset3dcol id -datanodecoo coo -slicemesh 'x=0.2,y=0.4,z=0.6' -print foo");

  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -showtess 1 -showmesh 0 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -showtess 1 -showmesh 1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -slicemesh 'x=0.2,y=0.4,z=0.6' -showtess 1 -showmesh 0 -showmeshslice 0 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -slicemesh 'x=0.2,y=0.4,z=0.6' -showtess 0 -showmesh 1 -showmeshslice 0 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -slicemesh 'x=0.2,y=0.4,z=0.6' -showtess 0 -showmesh 0 -showmeshslice 1 -print foo");

  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -showpoly 'z<0.5' -showface 'z>0.9' -showedge '(y>0.9)&&(x<0.1)' -showver '((x>0.9)&&(y>0.9))&&(z>0.9)' -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -showpoly none -showface all -showfaceinter 1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.msh -showelt3d all -showelt1d all -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.msh -dataelt3dcol id -showshadow 0 -print foo");
  
  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -cameracoo x+2*vx:y+vy:3 -print foo");

  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.msh -datanodecoo coo -cameracoo x+2*vx:y+vy:3 -print foo");

  strcpy ((*ptestdeps)[(*ptestqty)], "libmatheval");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -datanodecoo coo -cameracoo x+2*vx:y+vy:3 -print foo");

  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -cameralookat x:y:1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.msh -cameralookat x:y:1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess,nNNN-id1.msh -cameralookat x:y:1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -cameraangle 12 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -camerasky 1:0:0 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -cameraprojection orthographic -print foo");

  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -imagesize 900:800 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -imagebackground black -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -imageantialias 1 -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.tess -imageformat pov -print foo");
  strcpy ((*ptests)[(*ptestqty)++], "nNNN-id1.msh -loop F 1 0.1 1.2 -datanodecoo coo -datanodecoofact F -print fooF -endloop");

  return;
}
