2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 // Enable debug log for test coverage
19 #define DEBUG_ENABLED 1
21 #include "dali-scene-loader/public-api/environment-definition.h"
22 #include <dali-test-suite-utils.h>
23 #include <string_view>
26 using namespace Dali::SceneLoader;
28 int UtcDaliEnvironmentDefinitionLoadRawDefault(void)
30 EnvironmentDefinition envDef;
31 auto rawData = envDef.LoadRaw("");
33 DALI_TEST_EQUAL(rawData.mDiffuse.data.size(), 6u);
34 for (auto& face: rawData.mDiffuse.data)
36 DALI_TEST_EQUAL(face.size(), 1u);
39 DALI_TEST_EQUAL(rawData.mSpecular.data.size(), 6u);
40 for (auto& face: rawData.mSpecular.data)
42 DALI_TEST_EQUAL(face.size(), 1u);
48 int UtcDaliEnvironmentDefinitionLoadRawFail(void)
50 for (auto name: { "nonexistent.ktx", TEST_RESOURCE_DIR "Cobe.obj" , TEST_RESOURCE_DIR "truncated.ktx" })
52 EnvironmentDefinition envDef { name, name };
53 DALI_TEST_ASSERTION(envDef.LoadRaw(""), "Failed to load cubemap texture");
55 envDef.mDiffuseMapPath = "";
56 DALI_TEST_ASSERTION(envDef.LoadRaw(""), "Failed to load cubemap texture"); // specular map still invalid
62 int UtcDaliEnvironmentDefinitionLoadRawSuccess(void)
64 EnvironmentDefinition envDef { "forest_irradiance.ktx", "forest_radiance.ktx" };
65 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");
67 DALI_TEST_EQUAL(rawData.mDiffuse.data.size(), 6u);
68 for (auto& face: rawData.mDiffuse.data)
70 DALI_TEST_EQUAL(face.size(), 1u);
72 for (auto& mipLevel : face)
74 DALI_TEST_EQUAL(mipLevel.GetPixelFormat(), Pixel::Format::RGB888);
75 DALI_TEST_EQUAL(mipLevel.GetWidth(), size);
76 DALI_TEST_EQUAL(mipLevel.GetHeight(), size);
81 DALI_TEST_EQUAL(rawData.mSpecular.data.size(), 6u);
82 for (auto& face: rawData.mSpecular.data)
84 DALI_TEST_EQUAL(face.size(), 5u);
86 for (auto& mipLevel : face)
88 DALI_TEST_EQUAL(mipLevel.GetPixelFormat(), Pixel::Format::RGB888);
89 DALI_TEST_EQUAL(mipLevel.GetWidth(), size);
90 DALI_TEST_EQUAL(mipLevel.GetHeight(), size);
98 int UtcDaliEnvironmentDefinitionLoadEmptyRaw(void)
100 EnvironmentDefinition::RawData rawData;
101 EnvironmentDefinition envDef;
102 auto textures = envDef.Load(std::move(rawData));
103 DALI_TEST_CHECK(!textures.mDiffuse);
104 DALI_TEST_CHECK(!textures.mSpecular);
112 void CheckTextureDefault(Texture texture)
114 DALI_TEST_CHECK(texture);
115 DALI_TEST_EQUAL(texture.GetWidth(), 1u);
116 DALI_TEST_EQUAL(texture.GetHeight(), 1u);
119 void CheckTextureNotDefault(Texture texture)
121 DALI_TEST_CHECK(texture);
122 DALI_TEST_CHECK(texture.GetWidth() > 1u);
123 DALI_TEST_CHECK(texture.GetHeight() > 1u);
128 int UtcDaliEnvironmentDefinitionLoadDefault(void)
130 EnvironmentDefinition envDef{};
131 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");;
134 auto textures = envDef.Load(std::move(rawData));
136 CheckTextureDefault(textures.mSpecular);
137 CheckTextureDefault(textures.mDiffuse);
142 int UtcDaliEnvironmentDefinitionLoadDiffuse(void)
144 EnvironmentDefinition envDef{ "forest_irradiance.ktx" };
145 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");;
148 auto textures = envDef.Load(std::move(rawData));
150 CheckTextureNotDefault(textures.mDiffuse);
151 CheckTextureDefault(textures.mSpecular);
156 int UtcDaliEnvironmentDefinitionLoadSpecular(void)
158 EnvironmentDefinition envDef{ "", "forest_radiance.ktx" };
159 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");;
162 auto textures = envDef.Load(std::move(rawData));
164 CheckTextureDefault(textures.mDiffuse);
165 CheckTextureNotDefault(textures.mSpecular);
170 int UtcDaliEnvironmentDefinitionLoadBoth(void)
172 EnvironmentDefinition envDef{ "forest_irradiance.ktx", "forest_radiance.ktx" };
173 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");;
176 auto textures = envDef.Load(std::move(rawData));
178 CheckTextureNotDefault(textures.mDiffuse);
179 CheckTextureNotDefault(textures.mSpecular);