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.
21 #include <dali/public-api/dali-core.h>
22 #include <dali-test-suite-utils.h>
27 void utc_dali_radian_startup(void)
29 test_return_value = TET_UNDEF;
32 void utc_dali_radian_cleanup(void)
34 test_return_value = TET_PASS;
38 // Positive test case for constructors
39 int UtcDaliRadianConstructors01(void)
41 // Default constructor, does not initialise the value
42 Radian radian0( 0.0f );
44 // Test float assignment operator
46 DALI_TEST_EQUALS( float(radian0), Math::PI, 0.001f, TEST_LOCATION );
48 // Constructor from float value
49 Radian radian1( Math::PI );
50 DALI_TEST_EQUALS( float(radian1), Math::PI, 0.001f, TEST_LOCATION );
52 // Constructor from a Degree
53 Radian radian2( Degree( 180.0f ) );
54 DALI_TEST_EQUALS( float(radian2), Math::PI, 0.001f, TEST_LOCATION );
56 // Assignment from Degree
57 Radian radian3( 0.0f );
58 radian3 = Degree( 180.0f );
59 DALI_TEST_EQUALS( float(radian3), Math::PI, 0.001f, TEST_LOCATION );
63 int UtcDaliRadianCopyConstructor(void)
65 Radian radian0( Math::PI );
66 Radian radian1( radian0 );
67 DALI_TEST_EQUALS( float(radian1), Math::PI, 0.001f, TEST_LOCATION );
72 int UtcDaliRadianMoveConstructor(void)
74 Radian radian0( Math::PI );
75 Radian radian1 = std::move( radian0 );
76 DALI_TEST_EQUALS( float(radian1), Math::PI, 0.001f, TEST_LOCATION );
81 int UtcDaliRadianCopyAssignment(void)
83 Radian radian0( Math::PI );
86 DALI_TEST_EQUALS( float(radian1), Math::PI, 0.001f, TEST_LOCATION );
91 int UtcDaliRadianMoveAssignment(void)
93 Radian radian0( Math::PI );
95 radian1 = std::move( radian0 );
96 DALI_TEST_EQUALS( float(radian1), Math::PI, 0.001f, TEST_LOCATION );
101 // Positive test case for comparison
102 int UtcDaliRadianComparison01(void)
104 // Comparison between radians
105 Radian radian0( Math::PI_2 );
106 Radian radian1( Math::PI_2 );
107 Radian radian2( Math::PI );
109 DALI_TEST_CHECK( radian0 == radian1 );
110 DALI_TEST_CHECK( radian0 != radian2 );
112 // Comparison between radian to degree
113 Radian radian3( Math::PI );
114 Radian radian4( Math::PI_2 );
115 Degree degree0( 180.0f );
117 DALI_TEST_CHECK( radian3 == Radian(degree0) );
118 DALI_TEST_CHECK( radian4 != Radian(degree0) );
120 // Comparison with float
121 Radian radian5( Math::PI_2 );
123 DALI_TEST_CHECK( radian5 == Math::PI_2 );
124 DALI_TEST_CHECK( radian5 != Math::PI );
130 // test case for cast operators
131 int UtcDaliRadianCastOperators01(void)
133 Radian radian0( Math::PI );
135 const float& value0( radian0.radian );
136 DALI_TEST_EQUALS( value0, Math::PI, 0.001f, TEST_LOCATION );
138 radian0 = Math::PI_2;
139 DALI_TEST_EQUALS( value0, Math::PI_2, 0.001f, TEST_LOCATION );
141 float value1( radian0 );
142 DALI_TEST_EQUALS( value1, Math::PI_2, 0.001f, TEST_LOCATION );
145 DALI_TEST_EQUALS( float(radian0), Math::PI, 0.001f, TEST_LOCATION );
150 int UtcDaliRadianCastOperatorEquals(void)
152 Radian a(Math::PI_2);
153 Radian b(Math::PI_2);
156 DALI_TEST_EQUALS( a == a, true, TEST_LOCATION );
157 DALI_TEST_EQUALS( a == b, true, TEST_LOCATION );
158 DALI_TEST_EQUALS( a == c, false, TEST_LOCATION );
159 DALI_TEST_EQUALS( Degree(c) == c, true, TEST_LOCATION );
163 int UtcDaliRadianCastOperatorNotEquals(void)
165 Radian a(Math::PI_2);
166 Radian b(Math::PI_2);
169 DALI_TEST_EQUALS( a != a, false, TEST_LOCATION );
170 DALI_TEST_EQUALS( a != b, false, TEST_LOCATION );
171 DALI_TEST_EQUALS( a != c, true, TEST_LOCATION );
172 DALI_TEST_EQUALS( Degree(a) != c, true, TEST_LOCATION );
176 int UtcDaliRadianCastOperatorLessThan(void)
178 Radian a(Math::PI_4);
179 Radian b(Math::PI_2);
181 Radian d(2.0f*Math::PI);
184 DALI_TEST_EQUALS(a < a, false, TEST_LOCATION);
185 DALI_TEST_EQUALS(a < b, true, TEST_LOCATION);
186 DALI_TEST_EQUALS(a < c, true, TEST_LOCATION);
187 DALI_TEST_EQUALS(a < d, true, TEST_LOCATION);
188 DALI_TEST_EQUALS(a < e, false, TEST_LOCATION);
190 DALI_TEST_EQUALS(b < a, false, TEST_LOCATION);
191 DALI_TEST_EQUALS(b < b, false, TEST_LOCATION);
192 DALI_TEST_EQUALS(c < b, false, TEST_LOCATION);
193 DALI_TEST_EQUALS(d < b, false, TEST_LOCATION);
194 DALI_TEST_EQUALS(e < b, true, TEST_LOCATION);
196 DALI_TEST_EQUALS( Radian(Math::PI_2) < Degree(180.0f), true, TEST_LOCATION);
197 DALI_TEST_EQUALS( Radian(Math::PI_2) < Degree(90.0f), false, TEST_LOCATION);
198 DALI_TEST_EQUALS( Radian(Math::PI_2) > Degree(45.0f), true, TEST_LOCATION);
200 DALI_TEST_EQUALS( Degree(180.0f) > Radian(Math::PI_2), true, TEST_LOCATION);
201 DALI_TEST_EQUALS( Degree(90.0f) > Radian(Math::PI_2), false, TEST_LOCATION);
202 DALI_TEST_EQUALS( Degree(45.0f) < Radian(Math::PI_2), true, TEST_LOCATION);