All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
The TsTest Framework

TsTest is a framework that validates, graphs, and compares spline evaluations. It is used to test Ts itself, but it also has other "backends", which perform evaluation using other engines.

TsTest lives inside the Ts library. All files prefixed with tsTest, wrapTsTest, or TsTest are part of the TsTest framework. They fall into these categories:

  • Framework. The base implementation of TsTest. Includes data structures, generic evaluation interface, and graphical output.
    • tsTest_Evaluator (h, cpp, wrap): generic interface for spline evaluation. Implemented by all backends.
    • tsTest_SplineData (h, cpp, wrap): input data structure for the evaluation interface. Provides a generic way of defining the control parameters of a spline: knots, tangents, extrapolation, etc.
    • tsTest_SampleTimes (h, cpp, wrap): datatypes and convenience routines to determine a set of times at which to perform sampling.
    • tsTest_Types (h, cpp, wrap): datatypes for the evaluation interface.
    • tsTest_SampleBezier (h, cpp, wrap): pseudo-evaluator that samples a Bezier spline using the De Casteljau algorithm. Useful for providing "ground truth" in comparison tests.
    • TsTest_Grapher (py): takes a spline and evaluation results, and produces a graph image. Requires the Python matplotlib module.
    • TsTest_Comparator (py): takes two tuples of (spline, evaluation results), draws both on the same graph, and produces a second graph showing the difference curve. Relies on TsTest_Grapher.
    • tsTest_CompareBaseline (py): test helper that creates baseline files, compares results against baselines, and graphs differences.
  • Backends. Implementations of the generic evaluation interface for various spline evaluation engines.
    • tsTest_TsEvaluator (h, cpp, wrap): backend for the Ts library.
    • tsTest_MayapyEvaluator (py): backend for the mayapy interpreter. Produces evaluations using Autodesk Maya. Built optionally, and requires a working installation of Maya.
      • tsTest_MayapyDriver (py): helper for tsTest_MayapyEvaluator. A script that runs inside mayapy.
    • tsTest_AnimXEvaluator (h, cpp, wrap): backend for the AnimX library, an open-source Autodesk project that emulates Maya evaluation. Built optionally, and requires a working installation of AnimX.
  • Single-Backend Tests. CTest cases that call into one backend to validate behavior.
    • Most tests in testenv that start with tsTest. For example, tsTest_TsFramework.
  • Comparison Tests. CTest cases that call into two backends to compare their behavior with identical spline inputs.
    • Tests in testenv that start with tsTest and include Vs. For example, tsTest_MayapyVsAnimX.