| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // Copyright Contributors to the OpenVDB Project | ||
| 2 | // SPDX-License-Identifier: MPL-2.0 | ||
| 3 | |||
| 4 | #include "TestHarness.h" | ||
| 5 | |||
| 6 | #include "../util.h" | ||
| 7 | |||
| 8 | #include <openvdb_ax/compiler/CustomData.h> | ||
| 9 | #include <openvdb_ax/math/OpenSimplexNoise.h> | ||
| 10 | #include <openvdb_ax/compiler/PointExecutable.h> | ||
| 11 | #include <openvdb_ax/compiler/VolumeExecutable.h> | ||
| 12 | |||
| 13 | #include <openvdb/points/PointConversion.h> | ||
| 14 | #include <openvdb/util/CpuTimer.h> | ||
| 15 | |||
| 16 | #include <cppunit/extensions/HelperMacros.h> | ||
| 17 | |||
| 18 | #include <iostream> | ||
| 19 | #include <cstdlib> | ||
| 20 | #include <cmath> | ||
| 21 | #include <functional> | ||
| 22 | #include <random> | ||
| 23 | |||
| 24 | using namespace openvdb::points; | ||
| 25 | using namespace openvdb::ax; | ||
| 26 | |||
| 27 |
2/4✓ Branch 1 taken 59 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 59 times.
✗ Branch 4 not taken.
|
59 | class TestStandardFunctions : public unittest_util::AXTestCase |
| 28 | { | ||
| 29 | public: | ||
| 30 | #ifdef PROFILE | ||
| 31 | void setUp() override { | ||
| 32 | // if PROFILE, generate more data for each test | ||
| 33 | mHarness.reset(/*ppv*/8, openvdb::CoordBBox({0,0,0},{50,50,50})); | ||
| 34 | } | ||
| 35 | #endif | ||
| 36 | |||
| 37 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
4 | CPPUNIT_TEST_SUITE(TestStandardFunctions); |
| 38 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(abs); |
| 39 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(acos); |
| 40 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(adjoint); |
| 41 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(argsort); |
| 42 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(asin); |
| 43 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(atan); |
| 44 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(atan2); |
| 45 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(atof); |
| 46 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(atoi); |
| 47 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(cbrt); |
| 48 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(clamp); |
| 49 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(cofactor); |
| 50 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(cosh); |
| 51 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(cross); |
| 52 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(curlsimplexnoise); |
| 53 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(degrees); |
| 54 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(determinant); |
| 55 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(diag); |
| 56 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(dot); |
| 57 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(euclideanmod); |
| 58 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(external); |
| 59 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(fit); |
| 60 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(floormod); |
| 61 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(hash); |
| 62 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(hsvtorgb); |
| 63 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(identity3); |
| 64 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(identity4); |
| 65 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(intrinsic); |
| 66 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(inverse); |
| 67 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(isfinite); |
| 68 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(isinf); |
| 69 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(isnan); |
| 70 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(length); |
| 71 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(lengthsq); |
| 72 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(lerp); |
| 73 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(max); |
| 74 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(min); |
| 75 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(normalize); |
| 76 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(polardecompose); |
| 77 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(postscale); |
| 78 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(pow); |
| 79 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(prescale); |
| 80 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(pretransform); |
| 81 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(print); |
| 82 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(radians); |
| 83 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(rand); |
| 84 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(rand32); |
| 85 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(rgbtohsv); |
| 86 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(sign); |
| 87 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(signbit); |
| 88 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(simplexnoise); |
| 89 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(sinh); |
| 90 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(sort); |
| 91 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(tan); |
| 92 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(tanh); |
| 93 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(trace); |
| 94 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(transform); |
| 95 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(transpose); |
| 96 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
6 | CPPUNIT_TEST(truncatemod); |
| 97 |
4/8✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
4 | CPPUNIT_TEST_SUITE_END(); |
| 98 | |||
| 99 | void abs(); | ||
| 100 | void acos(); | ||
| 101 | void adjoint(); | ||
| 102 | void argsort(); | ||
| 103 | void asin(); | ||
| 104 | void atan(); | ||
| 105 | void atan2(); | ||
| 106 | void atof(); | ||
| 107 | void atoi(); | ||
| 108 | void cbrt(); | ||
| 109 | void clamp(); | ||
| 110 | void cofactor(); | ||
| 111 | void cosh(); | ||
| 112 | void cross(); | ||
| 113 | void curlsimplexnoise(); | ||
| 114 | void degrees(); | ||
| 115 | void determinant(); | ||
| 116 | void diag(); | ||
| 117 | void dot(); | ||
| 118 | void euclideanmod(); | ||
| 119 | void external(); | ||
| 120 | void fit(); | ||
| 121 | void floormod(); | ||
| 122 | void hash(); | ||
| 123 | void hsvtorgb(); | ||
| 124 | void identity3(); | ||
| 125 | void identity4(); | ||
| 126 | void intrinsic(); | ||
| 127 | void inverse(); | ||
| 128 | void isfinite(); | ||
| 129 | void isinf(); | ||
| 130 | void isnan(); | ||
| 131 | void length(); | ||
| 132 | void lengthsq(); | ||
| 133 | void lerp(); | ||
| 134 | void max(); | ||
| 135 | void min(); | ||
| 136 | void normalize(); | ||
| 137 | void polardecompose(); | ||
| 138 | void postscale(); | ||
| 139 | void pow(); | ||
| 140 | void prescale(); | ||
| 141 | void pretransform(); | ||
| 142 | void print(); | ||
| 143 | void radians(); | ||
| 144 | void rand(); | ||
| 145 | void rand32(); | ||
| 146 | void rgbtohsv(); | ||
| 147 | void sign(); | ||
| 148 | void signbit(); | ||
| 149 | void simplexnoise(); | ||
| 150 | void sinh(); | ||
| 151 | void sort(); | ||
| 152 | void tan(); | ||
| 153 | void tanh(); | ||
| 154 | void trace(); | ||
| 155 | void transform(); | ||
| 156 | void transpose(); | ||
| 157 | void truncatemod(); | ||
| 158 | }; | ||
| 159 | |||
| 160 | CPPUNIT_TEST_SUITE_REGISTRATION(TestStandardFunctions); | ||
| 161 | |||
| 162 | 58 | inline void testFunctionOptions(unittest_util::AXTestHarness& harness, | |
| 163 | const std::string& name, | ||
| 164 | CustomData::Ptr data = CustomData::create()) | ||
| 165 | { | ||
| 166 | 58 | const std::string file = "test/snippets/function/" + name; | |
| 167 | |||
| 168 | #ifdef PROFILE | ||
| 169 | struct Timer : public openvdb::util::CpuTimer {} timer; | ||
| 170 | |||
| 171 | const std::string code = unittest_util::loadText(file); | ||
| 172 | timer.start(std::string("\n") + name + std::string(": Parsing")); | ||
| 173 | const ast::Tree::Ptr syntaxTree = ast::parse(code.c_str()); | ||
| 174 | timer.stop(); | ||
| 175 | |||
| 176 | CPPUNIT_ASSERT_MESSAGE(syntaxTree, "Invalid AX passed to testFunctionOptions."); | ||
| 177 | |||
| 178 | // @warning the first execution can take longer due to some llvm startup | ||
| 179 | // so if you're profiling a single function be aware of this. | ||
| 180 | // This also profiles execution AND compilation. | ||
| 181 | |||
| 182 | auto profile = [&syntaxTree, &timer, &data] | ||
| 183 | (const openvdb::ax::CompilerOptions& opts, | ||
| 184 | std::vector<openvdb::points::PointDataGrid::Ptr>& points, | ||
| 185 | openvdb::GridPtrVec& volumes, | ||
| 186 | const bool doubleCompile = true) | ||
| 187 | { | ||
| 188 | if (!points.empty()) | ||
| 189 | { | ||
| 190 | openvdb::ax::Compiler compiler(opts); | ||
| 191 | if (doubleCompile) { | ||
| 192 | compiler.compile<PointExecutable>(*syntaxTree, data); | ||
| 193 | } | ||
| 194 | { | ||
| 195 | timer.start(" Points/Compilation "); | ||
| 196 | PointExecutable::Ptr executable = | ||
| 197 | compiler.compile<PointExecutable>(*syntaxTree, data); | ||
| 198 | timer.stop(); | ||
| 199 | timer.start(" Points/Execution "); | ||
| 200 | executable->execute(*points.front()); | ||
| 201 | timer.stop(); | ||
| 202 | } | ||
| 203 | } | ||
| 204 | |||
| 205 | if (!volumes.empty()) | ||
| 206 | { | ||
| 207 | openvdb::ax::Compiler compiler(opts); | ||
| 208 | if (doubleCompile) { | ||
| 209 | compiler.compile<VolumeExecutable>(*syntaxTree, data); | ||
| 210 | } | ||
| 211 | { | ||
| 212 | timer.start(" Volumes/Compilation "); | ||
| 213 | VolumeExecutable::Ptr executable = | ||
| 214 | compiler.compile<VolumeExecutable>(*syntaxTree, data); | ||
| 215 | timer.stop(); | ||
| 216 | timer.start(" Volumes/Execution "); | ||
| 217 | executable->execute(volumes); | ||
| 218 | timer.stop(); | ||
| 219 | } | ||
| 220 | } | ||
| 221 | }; | ||
| 222 | #endif | ||
| 223 | |||
| 224 | 58 | openvdb::ax::CompilerOptions opts; | |
| 225 | 58 | opts.mFunctionOptions.mConstantFoldCBindings = false; | |
| 226 | 58 | opts.mFunctionOptions.mPrioritiseIR = false; | |
| 227 | #ifdef PROFILE | ||
| 228 | std::cerr << " C Bindings" << std::endl; | ||
| 229 | profile(opts, harness.mInputPointGrids, harness.mInputVolumeGrids); | ||
| 230 | #else | ||
| 231 | 58 | harness.mOpts = opts; | |
| 232 | harness.mCustomData = data; | ||
| 233 |
1/2✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
|
58 | bool success = harness.executeCode(file); |
| 234 |
8/16✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 58 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 58 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 58 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 58 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 58 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 58 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 58 times.
✗ Branch 23 not taken.
|
116 | CPPUNIT_ASSERT_MESSAGE("error thrown during test: " + file + "\n" + harness.errors(), |
| 235 | success); | ||
| 236 |
8/16✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 58 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 58 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 58 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 58 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 58 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 58 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 58 times.
✗ Branch 23 not taken.
|
116 | AXTESTS_STANDARD_ASSERT_HARNESS(harness); |
| 237 | #endif | ||
| 238 | |||
| 239 |
1/2✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
|
58 | harness.resetInputsToZero(); |
| 240 | |||
| 241 | opts.mFunctionOptions.mConstantFoldCBindings = false; | ||
| 242 | 58 | opts.mFunctionOptions.mPrioritiseIR = true; | |
| 243 | #ifdef PROFILE | ||
| 244 | std::cerr << " IR Functions " << std::endl; | ||
| 245 | profile(opts, harness.mInputPointGrids, harness.mInputVolumeGrids); | ||
| 246 | #else | ||
| 247 | 58 | harness.mOpts = opts; | |
| 248 | harness.mCustomData = data; | ||
| 249 |
1/2✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
|
58 | success = harness.executeCode(file); |
| 250 |
8/16✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 58 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 58 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 58 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 58 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 58 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 58 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 58 times.
✗ Branch 23 not taken.
|
116 | CPPUNIT_ASSERT_MESSAGE("error thrown during test: " + file + "\n" + harness.errors(), |
| 251 | success); | ||
| 252 |
8/16✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 58 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 58 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 58 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 58 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 58 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 58 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 58 times.
✗ Branch 23 not taken.
|
116 | AXTESTS_STANDARD_ASSERT_HARNESS(harness); |
| 253 | #endif | ||
| 254 | |||
| 255 |
1/2✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
|
58 | harness.resetInputsToZero(); |
| 256 | |||
| 257 | 58 | opts.mFunctionOptions.mConstantFoldCBindings = true; | |
| 258 | 58 | opts.mFunctionOptions.mPrioritiseIR = false; | |
| 259 | #ifdef PROFILE | ||
| 260 | std::cerr << " C Folding " << std::endl; | ||
| 261 | profile(opts, harness.mInputPointGrids, harness.mInputVolumeGrids); | ||
| 262 | #else | ||
| 263 | 58 | harness.mOpts = opts; | |
| 264 | harness.mCustomData = data; | ||
| 265 |
1/2✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
|
58 | success = harness.executeCode(file); |
| 266 |
8/16✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 58 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 58 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 58 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 58 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 58 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 58 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 58 times.
✗ Branch 23 not taken.
|
116 | CPPUNIT_ASSERT_MESSAGE("error thrown during test: " + file + "\n" + harness.errors(), |
| 267 | success); | ||
| 268 |
8/16✓ Branch 1 taken 58 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 58 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 58 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 58 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 58 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 58 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 58 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 58 times.
✗ Branch 23 not taken.
|
116 | AXTESTS_STANDARD_ASSERT_HARNESS(harness); |
| 269 | #endif | ||
| 270 | 58 | } | |
| 271 | |||
| 272 | void | ||
| 273 | 1 | TestStandardFunctions::abs() | |
| 274 | { | ||
| 275 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | mHarness.addAttributes<int32_t>(unittest_util::nameSequence("test", 3), { |
| 276 | std::abs(-3), std::abs(3), std::abs(0) | ||
| 277 | }); | ||
| 278 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<int64_t>("test4", std::llabs(-2147483649LL)); |
| 279 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test5", std::abs(0.3f)); |
| 280 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test6", std::abs(-0.3f)); |
| 281 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test7", std::abs(1.79769e+308)); |
| 282 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test8", std::abs(-1.79769e+308)); |
| 283 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "abs"); |
| 284 | 1 | } | |
| 285 | |||
| 286 | void | ||
| 287 | 1 | TestStandardFunctions::acos() | |
| 288 | { | ||
| 289 | 1 | volatile double arg = 0.5; | |
| 290 | 1 | volatile float argf = 0.5f; | |
| 291 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::acos(arg)); |
| 292 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::acos(argf)); |
| 293 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "acos"); |
| 294 | 1 | } | |
| 295 | |||
| 296 | void | ||
| 297 | 1 | TestStandardFunctions::adjoint() | |
| 298 | { | ||
| 299 | const openvdb::math::Mat3<double> inputd( | ||
| 300 | 1.0, -1.0, 0.0, | ||
| 301 | 2.0, 2.0, 0.0, | ||
| 302 | 0.0, 0.0, -1.0); | ||
| 303 | |||
| 304 | 1 | openvdb::math::Mat3<double> add = inputd.adjoint(); | |
| 305 | |||
| 306 | const openvdb::math::Mat3<float> inputf( | ||
| 307 | 1.0f, -1.0f, 0.0f, | ||
| 308 | 2.0f, 2.0f, 0.0f, | ||
| 309 | 0.0f, 0.0f, -1.0f); | ||
| 310 | |||
| 311 | 1 | openvdb::math::Mat3<float> adf = inputf.adjoint(); | |
| 312 | |||
| 313 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<double>>("test1", add); |
| 314 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<float>>("test2", adf); |
| 315 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "adjoint"); |
| 316 | 1 | } | |
| 317 | |||
| 318 | void | ||
| 319 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TestStandardFunctions::argsort() |
| 320 | { | ||
| 321 | // const openvdb::Vec3d input3d(1.0, -1.0, 0.0); | ||
| 322 | // const openvdb::Vec3f input3f(1.0f, -1.0f, 0.0f); | ||
| 323 | // const openvdb::Vec3i input3i(1, -1, 0); | ||
| 324 | |||
| 325 | // const openvdb::Vec4d input4d(1.0, -1.0, 0.0, 5.0); | ||
| 326 | // const openvdb::Vec4f input4f(1.0f, -1.0f, 0.0f, 5.0f); | ||
| 327 | // const openvdb::Vec4i input4i(1, -1, 0, 5); | ||
| 328 | |||
| 329 | const openvdb::Vec3i arg3d(1,2,0); | ||
| 330 | const openvdb::Vec3i arg3f(1,2,0); | ||
| 331 | const openvdb::Vec3i arg3i(1,2,0); | ||
| 332 | |||
| 333 | const openvdb::Vec4i arg4d(1,2,0,3); | ||
| 334 | const openvdb::Vec4i arg4f(1,2,0,3); | ||
| 335 | const openvdb::Vec4i arg4i(1,2,0,3); | ||
| 336 | |||
| 337 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec3i>("test1", arg3d); |
| 338 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec3i>("test2", arg3f); |
| 339 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec3i>("test3", arg3i); |
| 340 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec4i>("test4", arg4d); |
| 341 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec4i>("test5", arg4f); |
| 342 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec4i>("test6", arg4i); |
| 343 | |||
| 344 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "argsort"); |
| 345 | 1 | } | |
| 346 | |||
| 347 | |||
| 348 | void | ||
| 349 | 1 | TestStandardFunctions::asin() | |
| 350 | { | ||
| 351 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::asin(-0.5)); |
| 352 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::asin(-0.5f)); |
| 353 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "asin"); |
| 354 | 1 | } | |
| 355 | |||
| 356 | void | ||
| 357 | 1 | TestStandardFunctions::atan() | |
| 358 | { | ||
| 359 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::atan(1.0)); |
| 360 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::atan(1.0f)); |
| 361 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "atan"); |
| 362 | 1 | } | |
| 363 | |||
| 364 | void | ||
| 365 | 1 | TestStandardFunctions::atan2() | |
| 366 | { | ||
| 367 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::atan2(1.0, 1.0)); |
| 368 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::atan2(1.0f, 1.0f)); |
| 369 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "atan2"); |
| 370 | 1 | } | |
| 371 | |||
| 372 | void | ||
| 373 | 1 | TestStandardFunctions::atoi() | |
| 374 | { | ||
| 375 | const std::vector<int32_t> values { | ||
| 376 | std::atoi(""), | ||
| 377 | std::atoi("-0"), | ||
| 378 | std::atoi("+0"), | ||
| 379 | std::atoi("-1"), | ||
| 380 | std::atoi("1"), | ||
| 381 | std::atoi("1s"), | ||
| 382 | std::atoi("1s"), | ||
| 383 | std::atoi(" 1"), | ||
| 384 | std::atoi("1s1"), | ||
| 385 | std::atoi("1 1"), | ||
| 386 | std::atoi("11"), | ||
| 387 | std::atoi("2147483647"), // int max | ||
| 388 | std::atoi("-2147483648") | ||
| 389 | 1 | }; | |
| 390 | |||
| 391 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<int32_t>(unittest_util::nameSequence("test", 13), values); |
| 392 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "atoi"); |
| 393 | 1 | } | |
| 394 | |||
| 395 | void | ||
| 396 | 1 | TestStandardFunctions::atof() | |
| 397 | { | ||
| 398 | const std::vector<double> values { | ||
| 399 | std::atof(""), | ||
| 400 | std::atof("-0.0"), | ||
| 401 | std::atof("+0.0"), | ||
| 402 | std::atof("-1.1"), | ||
| 403 | std::atof("1.5"), | ||
| 404 | std::atof("1.s9"), | ||
| 405 | std::atof("1s.9"), | ||
| 406 | std::atof(" 1.6"), | ||
| 407 | std::atof("1.5s1"), | ||
| 408 | std::atof("1. 1.3"), | ||
| 409 | std::atof("11.11"), | ||
| 410 | std::atof("1.79769e+308"), | ||
| 411 | std::atof("2.22507e-308") | ||
| 412 | 1 | }; | |
| 413 | |||
| 414 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("test", 13), values); |
| 415 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "atof"); |
| 416 | 1 | } | |
| 417 | |||
| 418 | void | ||
| 419 | 1 | TestStandardFunctions::cbrt() | |
| 420 | { | ||
| 421 | 1 | volatile double arg = 729.0; | |
| 422 | 1 | volatile float argf = 729.0f; | |
| 423 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::cbrt(arg)); |
| 424 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::cbrt(argf)); |
| 425 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "cbrt"); |
| 426 | 1 | } | |
| 427 | |||
| 428 | void | ||
| 429 | 1 | TestStandardFunctions::clamp() | |
| 430 | { | ||
| 431 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("double_test", 3), {-1.5, 0.0, 1.5}); |
| 432 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "clamp"); |
| 433 | 1 | } | |
| 434 | |||
| 435 | void | ||
| 436 | 1 | TestStandardFunctions::cofactor() | |
| 437 | { | ||
| 438 | const openvdb::math::Mat3<double> inputd( | ||
| 439 | 1.0, -1.0, 0.0, | ||
| 440 | 2.0, 2.0, 0.0, | ||
| 441 | 0.0, 0.0, -1.0); | ||
| 442 | |||
| 443 | 1 | openvdb::math::Mat3<double> cd = inputd.cofactor(); | |
| 444 | |||
| 445 | const openvdb::math::Mat3<float> inputf( | ||
| 446 | 1.0f, -1.0f, 0.0f, | ||
| 447 | 2.0f, 2.0f, 0.0f, | ||
| 448 | 0.0f, 0.0f, -1.0f); | ||
| 449 | |||
| 450 | 1 | openvdb::math::Mat3<float> cf = inputf.cofactor(); | |
| 451 | |||
| 452 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<double>>("test1", cd); |
| 453 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<float>>("test2", cf); |
| 454 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "cofactor"); |
| 455 | 1 | } | |
| 456 | |||
| 457 | void | ||
| 458 | 1 | TestStandardFunctions::cosh() | |
| 459 | { | ||
| 460 | 1 | volatile float arg = 1.0f; | |
| 461 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::cosh(1.0)); |
| 462 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::cosh(arg)); |
| 463 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "cosh"); |
| 464 | 1 | } | |
| 465 | |||
| 466 | void | ||
| 467 | 1 | TestStandardFunctions::cross() | |
| 468 | { | ||
| 469 | const openvdb::Vec3d ad(1.0,2.2,3.4), bd(4.1,5.3,6.2); | ||
| 470 | const openvdb::Vec3f af(1.0f,2.2f,3.4f), bf(4.1f,5.3f,6.2f); | ||
| 471 | const openvdb::Vec3i ai(1,2,3), bi(4,5,6); | ||
| 472 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | mHarness.addAttribute<openvdb::Vec3d>("test1", ad.cross(bd)); |
| 473 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | mHarness.addAttribute<openvdb::Vec3f>("test2", af.cross(bf)); |
| 474 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec3i>("test3", ai.cross(bi)); |
| 475 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "cross"); |
| 476 | 1 | } | |
| 477 | |||
| 478 | void | ||
| 479 | 1 | TestStandardFunctions::curlsimplexnoise() | |
| 480 | { | ||
| 481 | struct Local { | ||
| 482 | 12 | static inline double noise(double x, double y, double z) { | |
| 483 | 12 | const OSN::OSNoise gen; | |
| 484 | 12 | const double result = gen.eval<double>(x, y, z); | |
| 485 | 12 | return (result + 1.0) * 0.5; | |
| 486 | } | ||
| 487 | }; | ||
| 488 | |||
| 489 | double result[3]; | ||
| 490 | 1 | openvdb::ax::math::curlnoise<Local>(&result, 4.3, 5.7, -6.2); | |
| 491 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | const openvdb::Vec3d expected(result[0], result[1], result[2]); |
| 492 | |||
| 493 | mHarness.addAttributes<openvdb::Vec3d> | ||
| 494 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | (unittest_util::nameSequence("test", 2), {expected,expected}); |
| 495 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "curlsimplexnoise"); |
| 496 | 1 | } | |
| 497 | |||
| 498 | void | ||
| 499 | 1 | TestStandardFunctions::degrees() | |
| 500 | { | ||
| 501 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", 1.5708 * (180.0 / openvdb::math::pi<double>())); |
| 502 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", -1.1344f * (180.0f / openvdb::math::pi<float>())); |
| 503 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "degrees"); |
| 504 | 1 | } | |
| 505 | |||
| 506 | void | ||
| 507 | 1 | TestStandardFunctions::determinant() | |
| 508 | { | ||
| 509 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("det3_float", 600.0f); |
| 510 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("det3_double", 600.0); |
| 511 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("det4_float", 24.0f); |
| 512 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("det4_double", 2400.0); |
| 513 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "determinant"); |
| 514 | 1 | } | |
| 515 | |||
| 516 | void | ||
| 517 | 1 | TestStandardFunctions::diag() | |
| 518 | { | ||
| 519 | mHarness.addAttribute<openvdb::math::Mat3<double>> | ||
| 520 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | ("test1", openvdb::math::Mat3<double>(-1,0,0, 0,-2,0, 0,0,-3)); |
| 521 | mHarness.addAttribute<openvdb::math::Mat3<float>> | ||
| 522 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | ("test2", openvdb::math::Mat3<float>(-1,0,0, 0,-2,0, 0,0,-3)); |
| 523 | mHarness.addAttribute<openvdb::math::Mat4<double>> | ||
| 524 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | ("test3", openvdb::math::Mat4<double>(-1,0,0,0, 0,-2,0,0, 0,0,-3,0, 0,0,0,-4)); |
| 525 | mHarness.addAttribute<openvdb::math::Mat4<float>> | ||
| 526 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | ("test4", openvdb::math::Mat4<float>(-1,0,0,0, 0,-2,0,0, 0,0,-3,0, 0,0,0,-4)); |
| 527 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | mHarness.addAttribute<openvdb::math::Vec3<double>>("test5", openvdb::math::Vec3<float>(-1,-5,-9)); |
| 528 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | mHarness.addAttribute<openvdb::math::Vec3<float>>("test6", openvdb::math::Vec3<float>(-1,-5,-9)); |
| 529 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | mHarness.addAttribute<openvdb::math::Vec4<double>>("test7", openvdb::math::Vec4<double>(-1,-6,-11,-16)); |
| 530 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Vec4<float>>("test8", openvdb::math::Vec4<float>(-1,-6,-11,-16)); |
| 531 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "diag"); |
| 532 | 1 | } | |
| 533 | |||
| 534 | void | ||
| 535 | 1 | TestStandardFunctions::dot() | |
| 536 | { | ||
| 537 | const openvdb::Vec3d ad(1.0,2.2,3.4), bd(4.1,5.3,6.2); | ||
| 538 | const openvdb::Vec3f af(1.0f,2.2f,3.4f), bf(4.1f,5.3f,6.2f); | ||
| 539 | const openvdb::Vec3i ai(1,2,3), bi(4,5,6); | ||
| 540 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", ad.dot(bd)); |
| 541 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", af.dot(bf)); |
| 542 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<int32_t>("test3", ai.dot(bi)); |
| 543 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "dot"); |
| 544 | 1 | } | |
| 545 | |||
| 546 | void | ||
| 547 | 1 | TestStandardFunctions::euclideanmod() | |
| 548 | { | ||
| 549 | static auto emod = [](auto D, auto d) -> auto { | ||
| 550 | using ValueType = decltype(D); | ||
| 551 | return ValueType(D - d * (d < 0 ? std::ceil(D/double(d)) : std::floor(D/double(d)))); | ||
| 552 | }; | ||
| 553 | |||
| 554 | // @note these also test that these match % op | ||
| 555 | 1 | const std::vector<int32_t> ivalues{ emod(7, 5), emod(-7, 5), emod(7,-5), emod(-7,-5) }; | |
| 556 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | const std::vector<float> fvalues{ emod(7.2f, 5.7f), emod(-7.2f, 5.7f), emod(7.2f, -5.7f), emod(-7.2f, -5.7f) }; |
| 557 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | const std::vector<double> dvalues{ emod(7.2, 5.7), emod(-7.2, 5.7), emod(7.2, -5.7), emod(-7.2, -5.7) }; |
| 558 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<int32_t>(unittest_util::nameSequence("itest", 4), ivalues); |
| 559 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<float>(unittest_util::nameSequence("ftest", 4), fvalues); |
| 560 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("dtest", 4), dvalues); |
| 561 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "euclideanmod"); |
| 562 | 1 | } | |
| 563 | |||
| 564 | void | ||
| 565 | 1 | TestStandardFunctions::external() | |
| 566 | { | ||
| 567 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | mHarness.addAttribute<float>("foo", 2.0f); |
| 568 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | mHarness.addAttribute<openvdb::Vec3f>("v", openvdb::Vec3f(1.0f, 2.0f, 3.0f)); |
| 569 | |||
| 570 | using FloatMeta = openvdb::TypedMetadata<float>; | ||
| 571 | using VectorFloatMeta = openvdb::TypedMetadata<openvdb::math::Vec3<float>>; | ||
| 572 | |||
| 573 | FloatMeta customFloatData(2.0f); | ||
| 574 | 1 | VectorFloatMeta customVecData(openvdb::math::Vec3<float>(1.0f, 2.0f, 3.0f)); | |
| 575 | |||
| 576 | // test initialising the data before compile | ||
| 577 | |||
| 578 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | CustomData::Ptr data = CustomData::create(); |
| 579 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | data->insertData("float1", customFloatData.copy()); |
| 580 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
|
3 | data->insertData("vector1", customVecData.copy()); |
| 581 | |||
| 582 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
2 | testFunctionOptions(mHarness, "external", data); |
| 583 | |||
| 584 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.reset(); |
| 585 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | mHarness.addAttribute<float>("foo", 2.0f); |
| 586 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
2 | mHarness.addAttribute<openvdb::Vec3f>("v", openvdb::Vec3f(1.0f, 2.0f, 3.0f)); |
| 587 | |||
| 588 | // test post compilation | ||
| 589 | |||
| 590 | data->reset(); | ||
| 591 | |||
| 592 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | const std::string code = unittest_util::loadText("test/snippets/function/external"); |
| 593 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Compiler compiler; |
| 594 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | PointExecutable::Ptr pointExecutable = compiler.compile<PointExecutable>(code, data); |
| 595 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | VolumeExecutable::Ptr volumeExecutable = compiler.compile<VolumeExecutable>(code, data); |
| 596 | |||
| 597 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
2 | data->insertData("float1", customFloatData.copy()); |
| 598 | |||
| 599 | VectorFloatMeta::Ptr customTypedVecData = | ||
| 600 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | openvdb::StaticPtrCast<VectorFloatMeta>(customVecData.copy()); |
| 601 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
3 | data->insertData<VectorFloatMeta>("vector1", customTypedVecData); |
| 602 | |||
| 603 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
|
3 | for (auto& grid : mHarness.mInputPointGrids) { |
| 604 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | pointExecutable->execute(*grid); |
| 605 | } | ||
| 606 | |||
| 607 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | volumeExecutable->execute(mHarness.mInputSparseVolumeGrids); |
| 608 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | volumeExecutable->execute(mHarness.mInputDenseVolumeGrids); |
| 609 | |||
| 610 |
8/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | AXTESTS_STANDARD_ASSERT() |
| 611 | 1 | } | |
| 612 | |||
| 613 | void | ||
| 614 | 1 | TestStandardFunctions::fit() | |
| 615 | { | ||
| 616 | std::vector<double> values{23.0, -23.0, -25.0, -15.0, -15.0, -18.0, -24.0, 0.0, 10.0, | ||
| 617 | 1 | -5.0, 0.0, -1.0, 4.5, 4.5, 4.5, 4.5, 4.5}; | |
| 618 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("double_test", 17), values); |
| 619 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "fit"); |
| 620 | 1 | } | |
| 621 | |||
| 622 | void | ||
| 623 | 1 | TestStandardFunctions::floormod() | |
| 624 | { | ||
| 625 | auto axmod = [](auto D, auto d) -> auto { | ||
| 626 | 6 | auto r = std::fmod(D, d); | |
| 627 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
5 | if ((r > 0 && d < 0) || (r < 0 && d > 0)) r = r+d; |
| 628 | return r; | ||
| 629 | }; | ||
| 630 | |||
| 631 | // @note these also test that these match % op | ||
| 632 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | const std::vector<int32_t> ivalues{ 2,2, 3,3, -3,-3, -2,-2 }; |
| 633 | const std::vector<float> fvalues{ axmod(7.2f,5.7f),axmod(7.2f,5.7f), | ||
| 634 | axmod(-7.2f,5.7f),axmod(-7.2f,5.7f), | ||
| 635 | axmod(7.2f,-5.7f),axmod(7.2f,-5.7f), | ||
| 636 | axmod(-7.2f,-5.7f),axmod(-7.2f,-5.7f) | ||
| 637 |
7/16✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
5 | }; |
| 638 | const std::vector<double> dvalues{ axmod(7.2,5.7),axmod(7.2,5.7), | ||
| 639 | axmod(-7.2,5.7),axmod(-7.2,5.7), | ||
| 640 | axmod(7.2,-5.7),axmod(7.2,-5.7), | ||
| 641 | axmod(-7.2,-5.7),axmod(-7.2,-5.7) | ||
| 642 |
7/16✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
5 | }; |
| 643 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<int32_t>(unittest_util::nameSequence("itest", 8), ivalues); |
| 644 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<float>(unittest_util::nameSequence("ftest", 8), fvalues); |
| 645 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("dtest", 8), dvalues); |
| 646 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "floormod"); |
| 647 | 1 | } | |
| 648 | |||
| 649 | void | ||
| 650 | 1 | TestStandardFunctions::hash() | |
| 651 | { | ||
| 652 | const std::vector<int64_t> values{ | ||
| 653 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | static_cast<int64_t>(std::hash<std::string>{}("")), |
| 654 | 1 | static_cast<int64_t>(std::hash<std::string>{}("0")), | |
| 655 | 1 | static_cast<int64_t>(std::hash<std::string>{}("abc")), | |
| 656 | 1 | static_cast<int64_t>(std::hash<std::string>{}("123")), | |
| 657 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
4 | }; |
| 658 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<int64_t>(unittest_util::nameSequence("test", 4), values); |
| 659 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "hash"); |
| 660 | 1 | } | |
| 661 | |||
| 662 | void | ||
| 663 | 1 | TestStandardFunctions::hsvtorgb() | |
| 664 | { | ||
| 665 | auto axmod = [](auto D, auto d) -> auto { | ||
| 666 | 8 | auto r = std::fmod(D, d); | |
| 667 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 6 times.
|
8 | if ((r > 0 && d < 0) || (r < 0 && d > 0)) r = r+d; |
| 668 | return r; | ||
| 669 | }; | ||
| 670 | |||
| 671 | // HSV to RGB conversion. Taken from OpenEXR's ImathColorAlgo | ||
| 672 | // @note AX adds flooredmod of input hue to wrap to [0,1] domain | ||
| 673 | // @note AX also clamp saturation to [0,1] | ||
| 674 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 6 times.
|
8 | auto convert = [&](const openvdb::Vec3d& hsv) { |
| 675 | double hue = hsv.x(); | ||
| 676 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 6 times.
|
8 | double sat = hsv.y(); |
| 677 | double val = hsv.z(); | ||
| 678 | openvdb::Vec3d rgb(0.0); | ||
| 679 | |||
| 680 | // additions | ||
| 681 | hue = axmod(hue, 1.0); | ||
| 682 |
2/2✓ Branch 0 taken 5 times.
✓ Branch 1 taken 3 times.
|
8 | sat = std::max(0.0, sat); |
| 683 |
2/2✓ Branch 0 taken 4 times.
✓ Branch 1 taken 4 times.
|
8 | sat = std::min(1.0, sat); |
| 684 | // | ||
| 685 | |||
| 686 |
1/2✓ Branch 0 taken 8 times.
✗ Branch 1 not taken.
|
8 | if (hue == 1) hue = 0; |
| 687 | 8 | else hue *= 6; | |
| 688 | |||
| 689 | 8 | int i = int(std::floor(hue)); | |
| 690 | 8 | double f = hue - i; | |
| 691 | 8 | double p = val * (1 - sat); | |
| 692 | 8 | double q = val * (1 - (sat * f)); | |
| 693 | 8 | double t = val * (1 - (sat * (1 - f))); | |
| 694 | |||
| 695 |
5/7✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
8 | switch (i) { |
| 696 | case 0: | ||
| 697 | 3 | rgb[0] = val; rgb[1] = t; rgb[2] = p; | |
| 698 | 3 | break; | |
| 699 | case 1: | ||
| 700 | 1 | rgb[0] = q; rgb[1] = val; rgb[2] = p; | |
| 701 | 1 | break; | |
| 702 | case 2: | ||
| 703 | ✗ | rgb[0] = p; rgb[1] = val; rgb[2] = t; | |
| 704 | ✗ | break; | |
| 705 | case 3: | ||
| 706 | 1 | rgb[0] = p; rgb[1] = q; rgb[2] = val; | |
| 707 | 1 | break; | |
| 708 | case 4: | ||
| 709 | 1 | rgb[0] = t; rgb[1] = p; rgb[2] = val; | |
| 710 | 1 | break; | |
| 711 | case 5: | ||
| 712 | 2 | rgb[0] = val; rgb[1] = p; rgb[2] = q; | |
| 713 | 2 | break; | |
| 714 | } | ||
| 715 | |||
| 716 | 8 | return rgb; | |
| 717 | 1 | }; | |
| 718 | |||
| 719 | const std::vector<openvdb::Vec3d> values{ | ||
| 720 | 1 | convert({0,0,0}), | |
| 721 | 1 | convert({1,1,1}), | |
| 722 | 1 | convert({5.8,1,1}), | |
| 723 | 1 | convert({-0.1,-0.5,10}), | |
| 724 | 1 | convert({-5.1,10.5,-5}), | |
| 725 | 1 | convert({-7,-11.5,5}), | |
| 726 | 1 | convert({0.5,0.5,0.5}), | |
| 727 | 1 | convert({0.3,1.0,10.0}) | |
| 728 | 1 | }; | |
| 729 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<openvdb::Vec3d>(unittest_util::nameSequence("test", 8), values); |
| 730 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "hsvtorgb"); |
| 731 | 1 | } | |
| 732 | |||
| 733 | void | ||
| 734 | 1 | TestStandardFunctions::identity3() | |
| 735 | { | ||
| 736 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | mHarness.addAttribute<openvdb::Mat3d>("test", openvdb::Mat3d::identity()); |
| 737 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "identity3"); |
| 738 | 1 | } | |
| 739 | |||
| 740 | void | ||
| 741 | 1 | TestStandardFunctions::identity4() | |
| 742 | { | ||
| 743 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | mHarness.addAttribute<openvdb::Mat4d>("test", openvdb::Mat4d::identity()); |
| 744 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "identity4"); |
| 745 | 1 | } | |
| 746 | |||
| 747 | void | ||
| 748 | 1 | TestStandardFunctions::intrinsic() | |
| 749 | { | ||
| 750 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("dtest", 12), { |
| 751 | std::sqrt(9.0), | ||
| 752 | std::cos(0.0), | ||
| 753 | std::sin(0.0), | ||
| 754 | std::log(1.0), | ||
| 755 | std::log10(1.0), | ||
| 756 | std::log2(2.0), | ||
| 757 | std::exp(0.0), | ||
| 758 | std::exp2(4.0), | ||
| 759 | std::fabs(-10.321), | ||
| 760 | std::floor(2194.213), | ||
| 761 | std::ceil(2194.213), | ||
| 762 | std::round(0.5) | ||
| 763 | }); | ||
| 764 | |||
| 765 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | mHarness.addAttributes<float>(unittest_util::nameSequence("ftest", 12), { |
| 766 | std::sqrt(9.0f), | ||
| 767 | std::cos(0.0f), | ||
| 768 | std::sin(0.0f), | ||
| 769 | std::log(1.0f), | ||
| 770 | std::log10(1.0f), | ||
| 771 | std::log2(2.0f), | ||
| 772 | std::exp(0.0f), | ||
| 773 | std::exp2(4.0f), | ||
| 774 | std::fabs(-10.321f), | ||
| 775 | std::floor(2194.213f), | ||
| 776 | std::ceil(2194.213f), | ||
| 777 | std::round(0.5f) | ||
| 778 | }); | ||
| 779 | |||
| 780 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "intrinsic"); |
| 781 | 1 | } | |
| 782 | |||
| 783 | void | ||
| 784 | 1 | TestStandardFunctions::inverse() | |
| 785 | { | ||
| 786 | const openvdb::math::Mat3<double> inputd( | ||
| 787 | 1.0, -1.0, 0.0, | ||
| 788 | 2.0, 2.0, 0.0, | ||
| 789 | 0.0, 0.0, -1.0); | ||
| 790 | |||
| 791 | const openvdb::math::Mat3<double> singulard( | ||
| 792 | 1.0, 2.0, 3.0, | ||
| 793 | 4.0, 5.0, 6.0, | ||
| 794 | 7.0, 8.0, 9.0); | ||
| 795 | |||
| 796 | const openvdb::math::Mat3<float> inputf( | ||
| 797 | 1.0f, -1.0f, 0.0f, | ||
| 798 | 2.0f, 2.0f, 0.0f, | ||
| 799 | 0.0f, 0.0f, -1.0f); | ||
| 800 | |||
| 801 | const openvdb::math::Mat3<float> singularf( | ||
| 802 | 1.0f, 2.0f, 3.0f, | ||
| 803 | 4.0f, 5.0f, 6.0f, | ||
| 804 | 7.0f, 8.0f, 9.0f); | ||
| 805 | |||
| 806 | 1 | openvdb::math::Mat3<double> invd = inputd.inverse(); | |
| 807 | 1 | openvdb::math::Mat3<float> invf = inputf.inverse(); | |
| 808 | |||
| 809 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<double>>("test1", invd); |
| 810 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<float>>("test2", invf); |
| 811 | |||
| 812 | // inverse(singular) returns the original matrix | ||
| 813 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<double>>("test3", singulard); |
| 814 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Mat3<float>>("test4", singularf); |
| 815 | |||
| 816 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "inverse"); |
| 817 | 1 | } | |
| 818 | |||
| 819 | void | ||
| 820 | 1 | TestStandardFunctions::isfinite() | |
| 821 | { | ||
| 822 |
29/58✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 24 times.
✓ Branch 83 taken 1 times.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
|
25 | mHarness.addAttributes<bool>( |
| 823 | {"test1","test2","test3","test4","test5","test6","test7","test8","test9","test10", "test11","test12", | ||
| 824 | "test13","test14","test15","test16","test17","test18","test19","test20", "test21","test22", "test23","test24"}, | ||
| 825 | {true, true, true, true, true, true, true, true, true, true, true, true, | ||
| 826 | false, false, false, false, false, false, false, false, false, false, false, false}); | ||
| 827 | |||
| 828 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "isfinite"); |
| 829 | 1 | } | |
| 830 | |||
| 831 | void | ||
| 832 | 1 | TestStandardFunctions::isinf() | |
| 833 | { | ||
| 834 |
29/58✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 24 times.
✓ Branch 83 taken 1 times.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
|
25 | mHarness.addAttributes<bool>( |
| 835 | {"test1","test2","test3","test4","test5","test6","test7","test8","test9","test10", "test11","test12", | ||
| 836 | "test13","test14","test15","test16","test17","test18","test19","test20", "test21","test22", "test23","test24"}, | ||
| 837 | {false, false, false, false, false, false, false, false, false, false, false, false, | ||
| 838 | true, true, true, true, true, true, true, true, true, true, true, true}); | ||
| 839 | |||
| 840 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "isinf"); |
| 841 | 1 | } | |
| 842 | |||
| 843 | void | ||
| 844 | 1 | TestStandardFunctions::isnan() | |
| 845 | { | ||
| 846 |
29/58✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 24 times.
✓ Branch 83 taken 1 times.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
|
25 | mHarness.addAttributes<bool>( |
| 847 | {"test1","test2","test3","test4","test5","test6","test7","test8","test9","test10", "test11","test12", | ||
| 848 | "test13","test14","test15","test16","test17","test18","test19","test20", "test21","test22", "test23","test24"}, | ||
| 849 | {false, false, false, false, false, false, false, false, false, false, false, false, | ||
| 850 | true, true, true, true, true, true, true, true, true, true, true, true}); | ||
| 851 | |||
| 852 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "isnan"); |
| 853 | 1 | } | |
| 854 | |||
| 855 | |||
| 856 | void | ||
| 857 | 1 | TestStandardFunctions::length() | |
| 858 | { | ||
| 859 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test1", openvdb::Vec2d(2.2, 3.3).length()); |
| 860 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test2", openvdb::Vec2f(2.2f, 3.3f).length()); |
| 861 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test3", std::sqrt(double(openvdb::Vec2i(2, 3).lengthSqr()))); |
| 862 | |||
| 863 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test4", openvdb::Vec3d(2.2, 3.3, 6.6).length()); |
| 864 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test5", openvdb::Vec3f(2.2f, 3.3f, 6.6f).length()); |
| 865 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | mHarness.addAttribute("test6", std::sqrt(double(openvdb::Vec3i(2, 3, 6).lengthSqr()))); |
| 866 | |||
| 867 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | mHarness.addAttribute("test7", openvdb::Vec4d(2.2, 3.3, 6.6, 7.7).length()); |
| 868 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | mHarness.addAttribute("test8", openvdb::Vec4f(2.2f, 3.3f, 6.6f, 7.7f).length()); |
| 869 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test9", std::sqrt(double(openvdb::Vec4i(2, 3, 6, 7).lengthSqr()))); |
| 870 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "length"); |
| 871 | 1 | } | |
| 872 | |||
| 873 | void | ||
| 874 | 1 | TestStandardFunctions::lengthsq() | |
| 875 | { | ||
| 876 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test1", openvdb::Vec2d(2.2, 3.3).lengthSqr()); |
| 877 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test2", openvdb::Vec2f(2.2f, 3.3f).lengthSqr()); |
| 878 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test3", openvdb::Vec2i(2, 3).lengthSqr()); |
| 879 | |||
| 880 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test4", openvdb::Vec3d(2.2, 3.3, 6.6).lengthSqr()); |
| 881 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test5", openvdb::Vec3f(2.2f, 3.3f, 6.6f).lengthSqr()); |
| 882 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test6", openvdb::Vec3i(2, 3, 6).lengthSqr()); |
| 883 | |||
| 884 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test7", openvdb::Vec4d(2.2, 3.3, 6.6, 7.7).lengthSqr()); |
| 885 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test8", openvdb::Vec4f(2.2f, 3.3f, 6.6f, 7.7f).lengthSqr()); |
| 886 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test9", openvdb::Vec4i(2, 3, 6, 7).lengthSqr()); |
| 887 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "lengthsq"); |
| 888 | 1 | } | |
| 889 | |||
| 890 | void | ||
| 891 | 1 | TestStandardFunctions::lerp() | |
| 892 | { | ||
| 893 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("test", 9), |
| 894 | {-1.1, 1.0000001, 1.0000001, -1.0000001, 1.1, -1.1, 6.0, 21.0, -19.0}); | ||
| 895 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test10", 6.0f); |
| 896 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "lerp"); |
| 897 | 1 | } | |
| 898 | |||
| 899 | void | ||
| 900 | 1 | TestStandardFunctions::max() | |
| 901 | { | ||
| 902 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test1", std::max(-1.5, 1.5)); |
| 903 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test2", std::max(-1.5f, 1.5f)); |
| 904 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test3", std::max(-1, 1)); |
| 905 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "max"); |
| 906 | 1 | } | |
| 907 | |||
| 908 | void | ||
| 909 | 1 | TestStandardFunctions::min() | |
| 910 | { | ||
| 911 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test1", std::min(-1.5, 1.5)); |
| 912 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test2", std::min(-1.5f, 1.5f)); |
| 913 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test3", std::min(-1, 1)); |
| 914 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "min"); |
| 915 | 1 | } | |
| 916 | |||
| 917 | void | ||
| 918 | 1 | TestStandardFunctions::normalize() | |
| 919 | { | ||
| 920 | openvdb::Vec3f expected3f(1.f, 2.f, 3.f); | ||
| 921 | openvdb::Vec3d expected3d(1., 2., 3.); | ||
| 922 | openvdb::Vec3d expected3i(1, 2, 3); | ||
| 923 | |||
| 924 | openvdb::Vec4f expected4f(1.f, 2.f, 3.f, 4.f); | ||
| 925 | openvdb::Vec4d expected4d(1., 2., 3., 4.); | ||
| 926 | openvdb::Vec4d expected4i(1, 2, 3, 4); | ||
| 927 | |||
| 928 | 1 | expected3f.normalize(); | |
| 929 | 1 | expected3d.normalize(); | |
| 930 | 1 | expected3i.normalize(); | |
| 931 | 1 | expected4f.normalize(); | |
| 932 | 1 | expected4d.normalize(); | |
| 933 | 1 | expected4i.normalize(); | |
| 934 | |||
| 935 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute("test1", expected3f); |
| 936 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test2", expected3d); |
| 937 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test3", expected3i); |
| 938 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute("test4", expected4f); |
| 939 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test5", expected4d); |
| 940 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute("test6", expected4i); |
| 941 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "normalize"); |
| 942 | 1 | } | |
| 943 | |||
| 944 | void | ||
| 945 | 1 | TestStandardFunctions::polardecompose() | |
| 946 | { | ||
| 947 | // See snippet/polardecompose for details | ||
| 948 | const openvdb::Mat3d composite( | ||
| 949 | 1.41421456236949, 0.0, -5.09116882455613, | ||
| 950 | 0.0, 3.3, 0.0, | ||
| 951 | -1.41421356237670, 0.0, -5.09116882453015); | ||
| 952 | |||
| 953 | openvdb::Mat3d rot, symm; | ||
| 954 | 1 | openvdb::math::polarDecomposition(composite, rot, symm); | |
| 955 | |||
| 956 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Mat3d>("rotation", rot); |
| 957 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Mat3d>("symm", symm); |
| 958 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "polardecompose"); |
| 959 | 1 | } | |
| 960 | |||
| 961 | void | ||
| 962 | 1 | TestStandardFunctions::postscale() | |
| 963 | { | ||
| 964 | |||
| 965 | mHarness.addAttributes<openvdb::math::Mat4<float>> | ||
| 966 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | ({"mat1", "mat3", "mat5"}, { |
| 967 | openvdb::math::Mat4<float>( | ||
| 968 | 10.0f, 22.0f, 36.0f, 4.0f, | ||
| 969 | 50.0f, 66.0f, 84.0f, 8.0f, | ||
| 970 | 90.0f, 110.0f,132.0f,12.0f, | ||
| 971 | 130.0f,154.0f,180.0f,16.0f), | ||
| 972 | openvdb::math::Mat4<float>( | ||
| 973 | -1.0f, -4.0f, -9.0f, 4.0f, | ||
| 974 | -5.0f, -12.0f,-21.0f, 8.0f, | ||
| 975 | -9.0f, -20.0f,-33.0f,12.0f, | ||
| 976 | -13.0f,-28.0f,-45.0f,16.0f), | ||
| 977 | openvdb::math::Mat4<float>( | ||
| 978 | 0.0f, 100.0f, 200.0f, 100.0f, | ||
| 979 | 0.0f, 200.0f, 400.0f, 200.0f, | ||
| 980 | 0.0f, 300.0f, 600.0f, 300.0f, | ||
| 981 | 0.0f, 400.0f, 800.0f, 400.0f) | ||
| 982 | }); | ||
| 983 | |||
| 984 | mHarness.addAttributes<openvdb::math::Mat4<double>> | ||
| 985 |
9/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
4 | ({"mat2", "mat4", "mat6"}, { |
| 986 | openvdb::math::Mat4<double>( | ||
| 987 | 10.0, 22.0, 36.0, 4.0, | ||
| 988 | 50.0, 66.0, 84.0, 8.0, | ||
| 989 | 90.0, 110.0,132.0,12.0, | ||
| 990 | 130.0,154.0,180.0,16.0), | ||
| 991 | openvdb::math::Mat4<double>( | ||
| 992 | -1.0, -4.0, -9.0, 4.0, | ||
| 993 | -5.0, -12.0,-21.0, 8.0, | ||
| 994 | -9.0, -20.0,-33.0,12.0, | ||
| 995 | -13.0,-28.0,-45.0,16.0), | ||
| 996 | openvdb::math::Mat4<double>( | ||
| 997 | 0.0, 100.0, 200.0, 100.0, | ||
| 998 | 0.0, 200.0, 400.0, 200.0, | ||
| 999 | 0.0, 300.0, 600.0, 300.0, | ||
| 1000 | 0.0, 400.0, 800.0, 400.0) | ||
| 1001 | }); | ||
| 1002 | |||
| 1003 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "postscale"); |
| 1004 | 1 | } | |
| 1005 | |||
| 1006 | void | ||
| 1007 | 1 | TestStandardFunctions::pow() | |
| 1008 | { | ||
| 1009 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | mHarness.addAttributes<float>(unittest_util::nameSequence("float_test", 5),{ |
| 1010 | 1.0f, | ||
| 1011 | static_cast<float>(std::pow(3.0, -2.1)), | ||
| 1012 | std::pow(4.7f, -4.3f), | ||
| 1013 | static_cast<float>(std::pow(4.7f, 3)), | ||
| 1014 | 0.00032f | ||
| 1015 | }); | ||
| 1016 | |||
| 1017 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<int>("int_test1", static_cast<int>(std::pow(3, 5))); |
| 1018 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "pow"); |
| 1019 | 1 | } | |
| 1020 | |||
| 1021 | void | ||
| 1022 | 1 | TestStandardFunctions::prescale() | |
| 1023 | { | ||
| 1024 | |||
| 1025 | mHarness.addAttributes<openvdb::math::Mat4<float>> | ||
| 1026 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | ({"mat1", "mat3", "mat5"}, { |
| 1027 | openvdb::math::Mat4<float>( | ||
| 1028 | 10.0f, 20.0f, 30.0f, 40.0f, | ||
| 1029 | 55.0f, 66.0f, 77.0f, 88.0f, | ||
| 1030 | 108.0f, 120.0f,132.0f,144.0f, | ||
| 1031 | 13.0f,14.0f,15.0f,16.0f), | ||
| 1032 | openvdb::math::Mat4<float>( | ||
| 1033 | -1.0f,-2.0f,-3.0f,-4.0f, | ||
| 1034 | -10.0f,-12.0f,-14.0f,-16.0f, | ||
| 1035 | -27.0f,-30.0f,-33.0f,-36.0f, | ||
| 1036 | 13.0f,14.0f,15.0f,16.0f), | ||
| 1037 | openvdb::math::Mat4<float>( | ||
| 1038 | 0.0f, 0.0f, 0.0f, 0.0f, | ||
| 1039 | 200.0f, 200.0f, 200.0f, 200.0f, | ||
| 1040 | 600.0f, 600.0f, 600.0f, 600.0f, | ||
| 1041 | 400.0f, 400.0f, 400.0f, 400.0f) | ||
| 1042 | }); | ||
| 1043 | |||
| 1044 | mHarness.addAttributes<openvdb::math::Mat4<double>> | ||
| 1045 |
9/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
4 | ({"mat2", "mat4", "mat6"}, { |
| 1046 | openvdb::math::Mat4<double>( | ||
| 1047 | 10.0, 20.0, 30.0, 40.0, | ||
| 1048 | 55.0, 66.0, 77.0, 88.0, | ||
| 1049 | 108.0, 120.0,132.0,144.0, | ||
| 1050 | 13.0,14.0,15.0,16.0), | ||
| 1051 | openvdb::math::Mat4<double>( | ||
| 1052 | -1.0,-2.0,-3.0,-4.0, | ||
| 1053 | -10.0,-12.0,-14.0,-16.0, | ||
| 1054 | -27.0,-30.0,-33.0,-36.0, | ||
| 1055 | 13.0,14.0,15.0,16.0), | ||
| 1056 | openvdb::math::Mat4<double>( | ||
| 1057 | 0.0, 0.0, 0.0, 0.0, | ||
| 1058 | 200.0, 200.0, 200.0, 200.0, | ||
| 1059 | 600.0, 600.0, 600.0, 600.0, | ||
| 1060 | 400.0, 400.0, 400.0, 400.0) | ||
| 1061 | }); | ||
| 1062 | |||
| 1063 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "prescale"); |
| 1064 | 1 | } | |
| 1065 | |||
| 1066 | void | ||
| 1067 | 1 | TestStandardFunctions::pretransform() | |
| 1068 | { | ||
| 1069 | mHarness.addAttributes<openvdb::math::Vec3<double>> | ||
| 1070 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | ({"test1", "test3", "test7"}, { |
| 1071 | openvdb::math::Vec3<double>(14.0, 32.0, 50.0), | ||
| 1072 | openvdb::math::Vec3<double>(18.0, 46.0, 74.0), | ||
| 1073 | openvdb::math::Vec3<double>(18.0, 46.0, 74.0), | ||
| 1074 | }); | ||
| 1075 | |||
| 1076 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Vec4<double>>("test5", |
| 1077 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::math::Vec4<double>(30.0, 70.0, 110.0, 150.0)); |
| 1078 | |||
| 1079 | mHarness.addAttributes<openvdb::math::Vec3<float>> | ||
| 1080 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | ({"test2", "test4", "test8"}, { |
| 1081 | openvdb::math::Vec3<float>(14.0f, 32.0f, 50.0f), | ||
| 1082 | openvdb::math::Vec3<float>(18.0f, 46.0f, 74.0f), | ||
| 1083 | openvdb::math::Vec3<float>(18.0f, 46.0f, 74.0f), | ||
| 1084 | }); | ||
| 1085 | |||
| 1086 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Vec4<float>>("test6", |
| 1087 | 1 | openvdb::math::Vec4<float>(30.0f, 70.0f, 110.0f, 150.0f)); | |
| 1088 | |||
| 1089 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "pretransform"); |
| 1090 | 1 | } | |
| 1091 | |||
| 1092 | void | ||
| 1093 | 1 | TestStandardFunctions::print() | |
| 1094 | { | ||
| 1095 | openvdb::math::Transform::Ptr transform = | ||
| 1096 | 1 | openvdb::math::Transform::createLinearTransform(); | |
| 1097 | const std::vector<openvdb::Vec3d> single = { | ||
| 1098 | openvdb::Vec3d::zero() | ||
| 1099 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | }; |
| 1100 | |||
| 1101 | openvdb::points::PointDataGrid::Ptr grid = | ||
| 1102 | openvdb::points::createPointDataGrid | ||
| 1103 | <openvdb::points::NullCodec, openvdb::points::PointDataGrid> | ||
| 1104 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | (single, *transform); |
| 1105 | |||
| 1106 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | const std::string code = unittest_util::loadText("test/snippets/function/print"); |
| 1107 | |||
| 1108 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | openvdb::ax::Compiler::UniquePtr compiler = openvdb::ax::Compiler::create(); |
| 1109 | openvdb::ax::PointExecutable::Ptr executable = | ||
| 1110 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | compiler->compile<openvdb::ax::PointExecutable>(code); |
| 1111 | |||
| 1112 | std::streambuf* sbuf = std::cout.rdbuf(); | ||
| 1113 | |||
| 1114 | try { | ||
| 1115 | // Redirect cout | ||
| 1116 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::stringstream buffer; |
| 1117 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::cout.rdbuf(buffer.rdbuf()); |
| 1118 | |||
| 1119 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | executable->execute(*grid); |
| 1120 | const std::string& result = buffer.str(); | ||
| 1121 | |||
| 1122 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | std::string expected = "a\n1\n2e-10\n"; |
| 1123 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | expected += openvdb::Vec4i(3,4,5,6).str() + "\n"; |
| 1124 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | expected += "bcd\n"; |
| 1125 | |||
| 1126 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
1 | CPPUNIT_ASSERT_EQUAL(expected, result); |
| 1127 | } | ||
| 1128 | ✗ | catch (...) { | |
| 1129 | ✗ | std::cout.rdbuf(sbuf); | |
| 1130 | ✗ | throw; | |
| 1131 | } | ||
| 1132 | |||
| 1133 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::cout.rdbuf(sbuf); |
| 1134 | 1 | } | |
| 1135 | |||
| 1136 | void | ||
| 1137 | 1 | TestStandardFunctions::radians() | |
| 1138 | { | ||
| 1139 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", 90.0 * (openvdb::math::pi<double>() / 180.0)); |
| 1140 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", -65.0f * (openvdb::math::pi<float>() / 180.0f )); |
| 1141 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "radians"); |
| 1142 | 1 | } | |
| 1143 | |||
| 1144 | void | ||
| 1145 | 1 | TestStandardFunctions::rand() | |
| 1146 | { | ||
| 1147 | std::mt19937_64 engine; | ||
| 1148 | std::uniform_real_distribution<double> uniform(0.0,1.0); | ||
| 1149 | |||
| 1150 | 1 | size_t hash = std::hash<double>()(2.0); | |
| 1151 | 1 | engine.seed(hash); | |
| 1152 | |||
| 1153 | const double expected1 = uniform(engine); | ||
| 1154 | |||
| 1155 | 1 | hash = std::hash<double>()(3.0); | |
| 1156 | 1 | engine.seed(hash); | |
| 1157 | |||
| 1158 | const double expected2 = uniform(engine); | ||
| 1159 | const double expected3 = uniform(engine); | ||
| 1160 | |||
| 1161 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 4 times.
✓ Branch 23 taken 1 times.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | mHarness.addAttributes<double>({"test0", "test1", "test2", "test3"}, |
| 1162 | {expected1, expected1, expected2, expected3}); | ||
| 1163 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "rand"); |
| 1164 | 1 | } | |
| 1165 | |||
| 1166 | void | ||
| 1167 | 1 | TestStandardFunctions::rand32() | |
| 1168 | { | ||
| 1169 | auto hashToSeed = [](size_t hash) -> | ||
| 1170 | std::mt19937::result_type | ||
| 1171 | { | ||
| 1172 | unsigned int seed = 0; | ||
| 1173 | do { | ||
| 1174 | 4 | seed ^= (uint32_t) hash; | |
| 1175 |
4/4✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
|
4 | } while (hash >>= sizeof(uint32_t) * 8); |
| 1176 | 2 | return std::mt19937::result_type(seed); | |
| 1177 | }; | ||
| 1178 | |||
| 1179 | std::mt19937 engine; | ||
| 1180 | std::uniform_real_distribution<double> uniform(0.0,1.0); | ||
| 1181 | |||
| 1182 | 1 | size_t hash = std::hash<double>()(2.0); | |
| 1183 | 1 | engine.seed(hashToSeed(hash)); | |
| 1184 | |||
| 1185 | const double expected1 = uniform(engine); | ||
| 1186 | |||
| 1187 | 1 | hash = std::hash<double>()(3.0); | |
| 1188 | 1 | engine.seed(hashToSeed(hash)); | |
| 1189 | |||
| 1190 | const double expected2 = uniform(engine); | ||
| 1191 | const double expected3 = uniform(engine); | ||
| 1192 | |||
| 1193 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 4 times.
✓ Branch 23 taken 1 times.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | mHarness.addAttributes<double>({"test0", "test1", "test2", "test3"}, |
| 1194 | {expected1, expected1, expected2, expected3}); | ||
| 1195 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "rand32"); |
| 1196 | 1 | } | |
| 1197 | |||
| 1198 | void | ||
| 1199 | 1 | TestStandardFunctions::rgbtohsv() | |
| 1200 | { | ||
| 1201 | // RGB to HSV conversion. Taken from OpenEXR's ImathColorAlgo | ||
| 1202 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
|
4 | auto convert = [](const openvdb::Vec3d& rgb) { |
| 1203 | const double& x = rgb.x(); | ||
| 1204 | const double& y = rgb.y(); | ||
| 1205 | const double& z = rgb.z(); | ||
| 1206 | |||
| 1207 |
3/6✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✓ Branch 5 taken 1 times.
|
4 | double max = (x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z); |
| 1208 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
4 | double min = (x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z); |
| 1209 | 4 | double range = max - min; | |
| 1210 | double val = max; | ||
| 1211 | double sat = 0; | ||
| 1212 | double hue = 0; | ||
| 1213 | |||
| 1214 |
2/2✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
|
4 | if (max != 0) sat = range / max; |
| 1215 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
|
4 | if (sat != 0) |
| 1216 | { | ||
| 1217 | double h; | ||
| 1218 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
|
2 | if (x == max) h = (y - z) / range; |
| 1219 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | else if (y == max) h = 2 + (z - x) / range; |
| 1220 | 1 | else h = 4 + (x - y) / range; | |
| 1221 | 2 | hue = h / 6.; | |
| 1222 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
|
2 | if (hue < 0.) hue += 1.0; |
| 1223 | } | ||
| 1224 | |||
| 1225 | 4 | return openvdb::Vec3d(hue, sat, val); | |
| 1226 | }; | ||
| 1227 | |||
| 1228 | const std::vector<openvdb::Vec3d> values{ | ||
| 1229 | 1 | convert({0,0,0}), | |
| 1230 | 1 | convert({1,1,1}), | |
| 1231 | 1 | convert({20.5,40.3,100.1}), | |
| 1232 | 1 | convert({-10,1.3,0.25}) | |
| 1233 | 1 | }; | |
| 1234 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<openvdb::Vec3d>(unittest_util::nameSequence("test", 4), values); |
| 1235 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "rgbtohsv"); |
| 1236 | 1 | } | |
| 1237 | |||
| 1238 | void | ||
| 1239 | 1 | TestStandardFunctions::sign() | |
| 1240 | { | ||
| 1241 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
1 | mHarness.addAttributes<int32_t>(unittest_util::nameSequence("test", 13), |
| 1242 | { 0,0,0,0,0,0,0, -1,-1,-1, 1,1,1 }); | ||
| 1243 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "sign"); |
| 1244 | 1 | } | |
| 1245 | |||
| 1246 | void | ||
| 1247 | 1 | TestStandardFunctions::signbit() | |
| 1248 | { | ||
| 1249 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
1 | mHarness.addAttributes<bool>(unittest_util::nameSequence("test", 5), {true,false,true,false,false}); |
| 1250 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "signbit"); |
| 1251 | 1 | } | |
| 1252 | |||
| 1253 | void | ||
| 1254 | 1 | TestStandardFunctions::simplexnoise() | |
| 1255 | { | ||
| 1256 | 1 | const OSN::OSNoise noiseGenerator; | |
| 1257 | |||
| 1258 | 1 | const double noise1 = noiseGenerator.eval<double>(1.0, 2.0, 3.0); | |
| 1259 | 1 | const double noise2 = noiseGenerator.eval<double>(1.0, 2.0, 0.0); | |
| 1260 | 1 | const double noise3 = noiseGenerator.eval<double>(1.0, 0.0, 0.0); | |
| 1261 | 1 | const double noise4 = noiseGenerator.eval<double>(4.0, 14.0, 114.0); | |
| 1262 | |||
| 1263 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("noise1", (noise1 + 1.0) * 0.5); |
| 1264 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("noise2", (noise2 + 1.0) * 0.5); |
| 1265 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("noise3", (noise3 + 1.0) * 0.5); |
| 1266 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("noise4", (noise4 + 1.0) * 0.5); |
| 1267 | |||
| 1268 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "simplexnoise"); |
| 1269 | 1 | } | |
| 1270 | |||
| 1271 | void | ||
| 1272 | 1 | TestStandardFunctions::sinh() | |
| 1273 | { | ||
| 1274 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::sinh(1.0)); |
| 1275 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::sinh(1.0f)); |
| 1276 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "sinh"); |
| 1277 | 1 | } | |
| 1278 | |||
| 1279 | void | ||
| 1280 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TestStandardFunctions::sort() |
| 1281 | { | ||
| 1282 | // const openvdb::Vec3d input3d(1.0, -1.0, 0.0); | ||
| 1283 | // const openvdb::Vec3f input3f(1.0f, -1.0f, 0.0f); | ||
| 1284 | // const openvdb::Vec3i input3i(1, -1, 0); | ||
| 1285 | |||
| 1286 | // const openvdb::Vec4d input4d(1.0, -1.0, 0.0, 5.0); | ||
| 1287 | // const openvdb::Vec4f input4f(1.0f, -1.0f, 0.0f, 5.0f); | ||
| 1288 | // const openvdb::Vec4i input4i(1, -1, 0, 5); | ||
| 1289 | |||
| 1290 | const openvdb::Vec3d sorted3d(-1.0,0.0,1.0); | ||
| 1291 | const openvdb::Vec3f sorted3f(-1.0f,0.0f,1.0f); | ||
| 1292 | const openvdb::Vec3i sorted3i(-1,0,1); | ||
| 1293 | |||
| 1294 | const openvdb::Vec4d sorted4d(-1.0,0.0,1.0,5.0); | ||
| 1295 | const openvdb::Vec4f sorted4f(-1.0f,0.0f,1.0f,5.0f); | ||
| 1296 | const openvdb::Vec4i sorted4i(-1,0,1,5); | ||
| 1297 | |||
| 1298 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec3d>("test1", sorted3d); |
| 1299 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec3f>("test2", sorted3f); |
| 1300 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec3i>("test3", sorted3i); |
| 1301 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec4d>("test4", sorted4d); |
| 1302 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec4f>("test5", sorted4f); |
| 1303 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::Vec4i>("test6", sorted4i); |
| 1304 | |||
| 1305 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "sort"); |
| 1306 | 1 | } | |
| 1307 | |||
| 1308 | void | ||
| 1309 | 1 | TestStandardFunctions::tan() | |
| 1310 | { | ||
| 1311 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::tan(1.0)); |
| 1312 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::tan(1.0f)); |
| 1313 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "tan"); |
| 1314 | 1 | } | |
| 1315 | |||
| 1316 | void | ||
| 1317 | 1 | TestStandardFunctions::tanh() | |
| 1318 | { | ||
| 1319 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", std::tanh(1.0)); |
| 1320 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", std::tanh(1.0f)); |
| 1321 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "tanh"); |
| 1322 | 1 | } | |
| 1323 | |||
| 1324 | void | ||
| 1325 | 1 | TestStandardFunctions::trace() | |
| 1326 | { | ||
| 1327 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<double>("test1", 6.0); |
| 1328 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<float>("test2", 6.0f); |
| 1329 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "trace"); |
| 1330 | 1 | } | |
| 1331 | |||
| 1332 | void | ||
| 1333 | 1 | TestStandardFunctions::truncatemod() | |
| 1334 | { | ||
| 1335 | // @note these also test that these match % op | ||
| 1336 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | const std::vector<int32_t> ivalues{ 2,-2,2,-2, }; |
| 1337 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | const std::vector<float> fvalues{ std::fmod(7.2f, 5.7f), std::fmod(-7.2f, 5.7f), std::fmod(7.2f, -5.7f), std::fmod(-7.2f, -5.7f) }; |
| 1338 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | const std::vector<double> dvalues{ std::fmod(7.2, 5.7), std::fmod(-7.2, 5.7), std::fmod(7.2, -5.7), std::fmod(-7.2, -5.7) }; |
| 1339 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<int32_t>(unittest_util::nameSequence("itest", 4), ivalues); |
| 1340 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<float>(unittest_util::nameSequence("ftest", 4), fvalues); |
| 1341 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | mHarness.addAttributes<double>(unittest_util::nameSequence("dtest", 4), dvalues); |
| 1342 |
5/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
4 | testFunctionOptions(mHarness, "truncatemod"); |
| 1343 | 1 | } | |
| 1344 | |||
| 1345 | void | ||
| 1346 | 1 | TestStandardFunctions::transform() | |
| 1347 | { | ||
| 1348 | mHarness.addAttributes<openvdb::math::Vec3<double>> | ||
| 1349 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | ({"test1", "test3", "test7"}, { |
| 1350 | openvdb::math::Vec3<double>(30.0, 36.0, 42.0), | ||
| 1351 | openvdb::math::Vec3<double>(51.0, 58, 65.0), | ||
| 1352 | openvdb::math::Vec3<double>(51.0, 58, 65.0), | ||
| 1353 | }); | ||
| 1354 | |||
| 1355 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Vec4<double>>("test5", |
| 1356 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::math::Vec4<double>(90.0, 100.0, 110.0, 120.0)); |
| 1357 | |||
| 1358 | mHarness.addAttributes<openvdb::math::Vec3<float>> | ||
| 1359 |
10/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✓ Branch 20 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
5 | ({"test2", "test4", "test8"}, { |
| 1360 | openvdb::math::Vec3<float>(30.0f, 36.0f, 42.0f), | ||
| 1361 | openvdb::math::Vec3<float>(51.0f, 58.0f, 65.0f), | ||
| 1362 | openvdb::math::Vec3<float>(51.0f, 58.0f, 65.0f), | ||
| 1363 | }); | ||
| 1364 | |||
| 1365 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute<openvdb::math::Vec4<float>>("test6", |
| 1366 | 1 | openvdb::math::Vec4<float>(90.0f, 100.0f, 110.0f, 120.0f)); | |
| 1367 | |||
| 1368 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "transform"); |
| 1369 | 1 | } | |
| 1370 | |||
| 1371 | void | ||
| 1372 | 1 | TestStandardFunctions::transpose() | |
| 1373 | { | ||
| 1374 | |||
| 1375 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute("test1", |
| 1376 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::math::Mat3<double>( |
| 1377 | 1.0, 4.0, 7.0, | ||
| 1378 | 2.0, 5.0, 8.0, | ||
| 1379 | 3.0, 6.0, 9.0)); | ||
| 1380 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute("test2", |
| 1381 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::math::Mat3<float>( |
| 1382 | 1.0f, 4.0f, 7.0f, | ||
| 1383 | 2.0f, 5.0f, 8.0f, | ||
| 1384 | 3.0f, 6.0f, 9.0f)); | ||
| 1385 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute("test3", |
| 1386 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::math::Mat4<double>( |
| 1387 | 1.0, 5.0, 9.0,13.0, | ||
| 1388 | 2.0, 6.0,10.0,14.0, | ||
| 1389 | 3.0, 7.0,11.0,15.0, | ||
| 1390 | 4.0, 8.0,12.0,16.0)); | ||
| 1391 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | mHarness.addAttribute("test4", |
| 1392 | 1 | openvdb::math::Mat4<float>( | |
| 1393 | 1.0f, 5.0f, 9.0f,13.0f, | ||
| 1394 | 2.0f, 6.0f,10.0f,14.0f, | ||
| 1395 | 3.0f, 7.0f,11.0f,15.0f, | ||
| 1396 | 4.0f, 8.0f,12.0f,16.0f)); | ||
| 1397 | |||
| 1398 |
3/6✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
4 | testFunctionOptions(mHarness, "transpose"); |
| 1399 | 1 | } | |
| 1400 | |||
| 1401 |