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 #include <dali-test-suite-utils.h>
19 #include <dali/public-api/dali-core.h>
26 void utc_dali_radian_startup(void)
28 test_return_value = TET_UNDEF;
31 void utc_dali_radian_cleanup(void)
33 test_return_value = TET_PASS;
36 // Positive test case for constructors
37 int UtcDaliRadianConstructors01(void)
39 // Default constructor, does not initialise the value
42 // Test float assignment operator
44 DALI_TEST_EQUALS(float(radian0), Math::PI, 0.001f, TEST_LOCATION);
46 // Constructor from float value
47 Radian radian1(Math::PI);
48 DALI_TEST_EQUALS(float(radian1), Math::PI, 0.001f, TEST_LOCATION);
50 // Constructor from a Degree
51 Radian radian2(Degree(180.0f));
52 DALI_TEST_EQUALS(float(radian2), Math::PI, 0.001f, TEST_LOCATION);
54 // Assignment from Degree
56 radian3 = Degree(180.0f);
57 DALI_TEST_EQUALS(float(radian3), Math::PI, 0.001f, TEST_LOCATION);
61 int UtcDaliRadianCopyConstructor(void)
63 Radian radian0(Math::PI);
64 Radian radian1(radian0);
65 DALI_TEST_EQUALS(float(radian1), Math::PI, 0.001f, TEST_LOCATION);
70 int UtcDaliRadianMoveConstructor(void)
72 Radian radian0(Math::PI);
73 Radian radian1 = std::move(radian0);
74 DALI_TEST_EQUALS(float(radian1), Math::PI, 0.001f, TEST_LOCATION);
79 int UtcDaliRadianCopyAssignment(void)
81 Radian radian0(Math::PI);
84 DALI_TEST_EQUALS(float(radian1), Math::PI, 0.001f, TEST_LOCATION);
89 int UtcDaliRadianMoveAssignment(void)
91 Radian radian0(Math::PI);
93 radian1 = std::move(radian0);
94 DALI_TEST_EQUALS(float(radian1), Math::PI, 0.001f, TEST_LOCATION);
99 // Positive test case for comparison
100 int UtcDaliRadianComparison01(void)
102 // Comparison between radians
103 Radian radian0(Math::PI_2);
104 Radian radian1(Math::PI_2);
105 Radian radian2(Math::PI);
107 DALI_TEST_CHECK(radian0 == radian1);
108 DALI_TEST_CHECK(radian0 != radian2);
110 // Comparison between radian to degree
111 Radian radian3(Math::PI);
112 Radian radian4(Math::PI_2);
113 Degree degree0(180.0f);
115 DALI_TEST_CHECK(radian3 == Radian(degree0));
116 DALI_TEST_CHECK(radian4 != Radian(degree0));
118 // Comparison with float
119 Radian radian5(Math::PI_2);
121 DALI_TEST_CHECK(radian5 == Math::PI_2);
122 DALI_TEST_CHECK(radian5 != Math::PI);
127 // test case for cast operators
128 int UtcDaliRadianCastOperators01(void)
130 Radian radian0(Math::PI);
132 const float& value0(radian0.radian);
133 DALI_TEST_EQUALS(value0, Math::PI, 0.001f, TEST_LOCATION);
135 radian0 = Math::PI_2;
136 DALI_TEST_EQUALS(value0, Math::PI_2, 0.001f, TEST_LOCATION);
138 float value1(radian0);
139 DALI_TEST_EQUALS(value1, Math::PI_2, 0.001f, TEST_LOCATION);
142 DALI_TEST_EQUALS(float(radian0), Math::PI, 0.001f, TEST_LOCATION);
146 int UtcDaliRadianCastOperatorEquals(void)
148 Radian a(Math::PI_2);
149 Radian b(Math::PI_2);
152 DALI_TEST_EQUALS(a == a, true, TEST_LOCATION);
153 DALI_TEST_EQUALS(a == b, true, TEST_LOCATION);
154 DALI_TEST_EQUALS(a == c, false, TEST_LOCATION);
155 DALI_TEST_EQUALS(Degree(c) == c, true, TEST_LOCATION);
159 int UtcDaliRadianCastOperatorNotEquals(void)
161 Radian a(Math::PI_2);
162 Radian b(Math::PI_2);
165 DALI_TEST_EQUALS(a != a, false, TEST_LOCATION);
166 DALI_TEST_EQUALS(a != b, false, TEST_LOCATION);
167 DALI_TEST_EQUALS(a != c, true, TEST_LOCATION);
168 DALI_TEST_EQUALS(Degree(a) != c, true, TEST_LOCATION);
172 int UtcDaliRadianCastOperatorLessThan(void)
174 Radian a(Math::PI_4);
175 Radian b(Math::PI_2);
177 Radian d(2.0f * Math::PI);
180 DALI_TEST_EQUALS(a < a, false, TEST_LOCATION);
181 DALI_TEST_EQUALS(a < b, true, TEST_LOCATION);
182 DALI_TEST_EQUALS(a < c, true, TEST_LOCATION);
183 DALI_TEST_EQUALS(a < d, true, TEST_LOCATION);
184 DALI_TEST_EQUALS(a < e, false, TEST_LOCATION);
186 DALI_TEST_EQUALS(b < a, false, TEST_LOCATION);
187 DALI_TEST_EQUALS(b < b, false, TEST_LOCATION);
188 DALI_TEST_EQUALS(c < b, false, TEST_LOCATION);
189 DALI_TEST_EQUALS(d < b, false, TEST_LOCATION);
190 DALI_TEST_EQUALS(e < b, true, TEST_LOCATION);
192 DALI_TEST_EQUALS(Radian(Math::PI_2) < Degree(180.0f), true, TEST_LOCATION);
193 DALI_TEST_EQUALS(Radian(Math::PI_2) < Degree(90.0f), false, TEST_LOCATION);
194 DALI_TEST_EQUALS(Radian(Math::PI_2) > Degree(45.0f), true, TEST_LOCATION);
196 DALI_TEST_EQUALS(Degree(180.0f) > Radian(Math::PI_2), true, TEST_LOCATION);
197 DALI_TEST_EQUALS(Degree(90.0f) > Radian(Math::PI_2), false, TEST_LOCATION);
198 DALI_TEST_EQUALS(Degree(45.0f) < Radian(Math::PI_2), true, TEST_LOCATION);