Halide 20.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
test.h
Go to the documentation of this file.
1#ifndef TEST_H
2#define TEST_H
3
4#include "Halide.h"
5
6namespace Halide {
7namespace Internal {
8namespace Autoscheduler {
9
10#define user_assert(c) _halide_internal_assertion(c, Halide::CompileError)
11
12#define EXPECT_EQ(expected, actual) expect_eq(__LINE__, expected, actual)
13#define APPROX_EQ(expected, actual, epsilon) approx_eq(__LINE__, expected, actual, epsilon)
14#define EXPECT(expected) expect(__LINE__, expected)
15
16template<typename A, typename B>
17void expect_eq(int line, const A &expected, const B &actual) {
18 user_assert(expected == actual)
19 << "Assert failed on line " << line << "."
20 << "\nExpected value = " << expected
21 << "\nActual value = " << actual;
22}
23
24template<typename A, typename B>
25void approx_eq(int line, const A &expected, const B &actual, float epsilon) {
26 user_assert(std::abs(expected - actual) < epsilon)
27 << "Assert failed on line " << line << "."
28 << "\nExpected value = " << expected
29 << "\nActual value = " << actual;
30}
31
32template<typename A>
33void expect(int line, const A &expected) {
35 << "Assert failed on line " << line << "."
36 << "\nExpected value to be true\n";
37}
38
39} // namespace Autoscheduler
40} // namespace Internal
41} // namespace Halide
42
43#endif // TEST_H
void expect(int line, const A &expected)
Definition test.h:33
void approx_eq(int line, const A &expected, const B &actual, float epsilon)
Definition test.h:25
void expect_eq(int line, const A &expected, const B &actual)
Definition test.h:17
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
Internal::ConstantInterval cast(Type t, const Internal::ConstantInterval &a)
Cast operators for ConstantIntervals.
#define user_assert(c)
Definition test.h:10