[dali_2.1.32] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-scene3d / utc-Dali-MeshDefinition.cpp
1 /*
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include <vector>
19
20 #include "dali-scene3d/public-api/loader/mesh-definition.h"
21 #include <dali-test-suite-utils.h>
22
23 using namespace Dali;
24 using namespace Dali::Scene3D::Loader;
25
26 int UtcDaliMeshDefinitionBlobApplyMinMaxBothMinMaxApplied(void)
27 {
28   using Container = std::vector<float>;
29
30   Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
31   Container minValues = { 5.0f };
32   Container maxValues = { 10.0f };
33   Container result = {5.0f, 6.0f, 8.0f, 10.0f, 10.0f};
34
35   MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
36
37   for( auto i = 0u; i < result.size(); ++i)
38   {
39     DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
40   }
41
42   END_TEST;
43 }
44
45 int UtcDaliMeshDefinitionBlobApplyMinMaxOnlyMin(void)
46 {
47   using Container = std::vector<float>;
48
49   Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
50   Container minValues = { 5.0f };
51   Container maxValues = {};
52   Container result = {5.0f, 6.0f, 8.0f, 10.0f, 12.0f};
53
54   MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
55
56   for( auto i = 0u; i < result.size(); ++i)
57   {
58     DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
59   }
60
61   END_TEST;
62 }
63
64 int UtcDaliMeshDefinitionBlobApplyMinMaxOnlyMax(void)
65 {
66   using Container = std::vector<float>;
67
68   Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
69   Container minValues = { };
70   Container maxValues = { 10.0f };
71   Container result = {4.0f, 6.0f, 8.0f, 10.0f, 10.0f};
72
73   MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
74
75   for( auto i = 0u; i < result.size(); ++i)
76   {
77     DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
78   }
79
80   END_TEST;
81 }
82
83 int UtcDaliMeshDefinitionBlobApplyMinMaxBothEmpty(void)
84 {
85   using Container = std::vector<float>;
86
87   Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
88   Container minValues;
89   Container maxValues;
90   Container result = {4.0f, 6.0f, 8.0f, 10.0f, 12.0f};
91
92   MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
93
94   for( auto i = 0u; i < result.size(); ++i)
95   {
96     DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
97   }
98
99   END_TEST;
100 }
101