File: vtkRegressionTestImage.h

package info (click to toggle)
vtk9 9.5.2%2Bdfsg3-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 205,984 kB
  • sloc: cpp: 2,336,570; ansic: 327,116; python: 111,200; yacc: 4,104; java: 3,977; sh: 3,032; xml: 2,771; perl: 2,189; lex: 1,787; makefile: 181; javascript: 165; objc: 153; tcl: 59
file content (51 lines) | stat: -rw-r--r-- 2,515 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
#ifndef vtkRegressionTestImage_h
#define vtkRegressionTestImage_h

// Includes and a macro necessary for saving the image produced by a cxx
// example program. This capability is critical for regression testing.
// This function returns 1 if test passed, 0 if test failed.

#include "vtkTesting.h"

VTK_ABI_NAMESPACE_BEGIN
class vtkRegressionTester : public vtkTesting
{
public:
  // 0.05 threshold is arbitrary but found to
  // allow most graphics system variances to pass
  // when they should and fail when they should
  static constexpr double ErrorThreshold = 0.05;

protected:
  vtkRegressionTester() = default;
  ~vtkRegressionTester() override = default;

private:
  vtkRegressionTester(const vtkRegressionTester&) = delete;
  void operator=(const vtkRegressionTester&) = delete;
};

#define vtkRegressionTestImage(rw)                                                                 \
  vtkTesting::Test(argc, argv, rw, vtkRegressionTester::ErrorThreshold)

#define vtkRegressionTestImageThreshold(rw, t) vtkTesting::Test(argc, argv, rw, t)

#define vtkRegressionTestPassForMesaLessThan(rw, major, minor, patch)                              \
  do                                                                                               \
  {                                                                                                \
    int mesaVersion[3] = {};                                                                       \
    if (vtkTesting::GetMesaVersion(rw, mesaVersion))                                               \
    {                                                                                              \
      if (mesaVersion[0] < major || (mesaVersion[0] == major && mesaVersion[1] < minor) ||         \
        (mesaVersion[0] == major && mesaVersion[1] == minor && mesaVersion[2] < patch))            \
      {                                                                                            \
        return EXIT_SUCCESS;                                                                       \
      }                                                                                            \
    }                                                                                              \
  } while (false)

VTK_ABI_NAMESPACE_END
#endif // vtkRegressionTestImage_h
// VTK-HeaderTest-Exclude: vtkRegressionTestImage.h