1 // Copyright 2020-2021 Intel Corporation 2 // SPDX-License-Identifier: Apache-2.0 3 4 #include <sstream> 5 #include "../../external/catch.hpp" 6 #include "openvkl_testing.h" 7 #include "structured_regular_volume.h" 8 9 using namespace rkcommon; 10 using namespace openvkl::testing; 11 12 TEST_CASE("Structured regular volume strides", "[volume_strides]") 13 { 14 initializeOpenVKL(); 15 16 std::vector<VKLDataCreationFlags> dataCreationFlags{VKL_DATA_DEFAULT, 17 VKL_DATA_SHARED_BUFFER}; 18 19 std::vector<float> strideFactors{1.5f, 2.f}; 20 21 for (const auto &dcf : dataCreationFlags) { 22 for (const auto &strideFactor : strideFactors) { 23 std::stringstream sectionName; 24 sectionName << (dcf == VKL_DATA_DEFAULT ? "VKL_DATA_DEFAULT" 25 : "VKL_DATA_SHARED_BUFFER"); 26 sectionName << ", stride factor: " << strideFactor; 27 28 // can't have duplicate section names at the same level 29 DYNAMIC_SECTION(sectionName.str()) 30 { 31 SECTION("32-bit addressing") 32 { 33 SECTION("unsigned char") 34 { 35 test_32bit_addressing<WaveletStructuredRegularVolumeUChar>( 36 dcf, strideFactor); 37 } 38 39 SECTION("short") 40 { 41 test_32bit_addressing<WaveletStructuredRegularVolumeShort>( 42 dcf, strideFactor); 43 } 44 45 SECTION("unsigned short") 46 { 47 test_32bit_addressing<WaveletStructuredRegularVolumeUShort>( 48 dcf, strideFactor); 49 } 50 51 SECTION("half") 52 { 53 test_32bit_addressing<WaveletStructuredRegularVolumeHalf>( 54 dcf, strideFactor); 55 } 56 57 SECTION("float") 58 { 59 test_32bit_addressing<WaveletStructuredRegularVolumeFloat>( 60 dcf, strideFactor); 61 } 62 63 SECTION("double") 64 { 65 test_32bit_addressing<WaveletStructuredRegularVolumeDouble>( 66 dcf, strideFactor); 67 } 68 } 69 70 SECTION("64/32-bit addressing") 71 { 72 SECTION("unsigned char") 73 { 74 test_64_32bit_addressing<WaveletStructuredRegularVolumeUChar>( 75 dcf, strideFactor); 76 } 77 78 SECTION("short") 79 { 80 test_64_32bit_addressing<WaveletStructuredRegularVolumeShort>( 81 dcf, strideFactor); 82 } 83 84 SECTION("unsigned short") 85 { 86 test_64_32bit_addressing<WaveletStructuredRegularVolumeUShort>( 87 dcf, strideFactor); 88 } 89 90 SECTION("half") 91 { 92 test_64_32bit_addressing<WaveletStructuredRegularVolumeHalf>( 93 dcf, strideFactor); 94 } 95 96 SECTION("float") 97 { 98 test_64_32bit_addressing<WaveletStructuredRegularVolumeFloat>( 99 dcf, strideFactor); 100 } 101 102 SECTION("double") 103 { 104 test_64_32bit_addressing<WaveletStructuredRegularVolumeDouble>( 105 dcf, strideFactor); 106 } 107 } 108 } 109 } 110 } 111 112 shutdownOpenVKL(); 113 } 114