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>
32 CheckCopyCtorP(Property::Value value)
34 Property::Value copy(value);
35 DALI_TEST_CHECK(value.Get<T>() == copy.Get<T>());
39 } // unnamed namespace
41 void utc_dali_property_value_startup(void)
43 test_return_value = TET_UNDEF;
46 void utc_dali_property_value_cleanup(void)
48 test_return_value = TET_PASS;
51 int UtcDaliPropertyValueConstructorsNoneP(void)
53 Property::Value value;
55 DALI_TEST_CHECK(value.GetType() == Property::NONE);
60 int UtcDaliPropertyValueConstructorsNoneTypeP(void)
62 Property::Value value(Property::NONE);
64 DALI_TEST_CHECK(value.GetType() == Property::NONE);
69 int UtcDaliPropertyValueConstructorsBoolP(void)
71 Property::Value value(true);
73 DALI_TEST_CHECK(value.GetType() == Property::BOOLEAN);
74 DALI_TEST_CHECK(value.Get<bool>() == true);
79 int UtcDaliPropertyValueConstructorBoolTypeP(void)
81 Property::Value value(Property::BOOLEAN);
83 DALI_TEST_CHECK(value.GetType() == Property::BOOLEAN);
84 DALI_TEST_CHECK(value.Get<bool>() == false);
89 int UtcDaliPropertyValueConstructorsFloatP(void)
91 Property::Value value(2.f);
93 DALI_TEST_CHECK(value.GetType() == Property::FLOAT);
94 DALI_TEST_CHECK(value.Get<float>() == 2.f);
99 int UtcDaliPropertyValueConstructorsFloatTypeP(void)
101 Property::Value value(Property::FLOAT);
103 DALI_TEST_CHECK(value.GetType() == Property::FLOAT);
104 DALI_TEST_CHECK(value.Get<float>() == 0.f);
109 int UtcDaliPropertyValueConstructorsIntP(void)
111 Property::Value value(1);
113 DALI_TEST_CHECK(value.GetType() == Property::INTEGER);
114 DALI_TEST_CHECK(value.Get<int>() == 1);
119 int UtcDaliPropertyValueConstructorsIntTypeP(void)
121 Property::Value value(Property::INTEGER);
123 DALI_TEST_CHECK(value.GetType() == Property::INTEGER);
124 DALI_TEST_CHECK(value.Get<int>() == 0);
129 int UtcDaliPropertyValueConstructorsVector2P(void)
132 Property::Value value(v);
134 DALI_TEST_CHECK(value.GetType() == Property::VECTOR2);
135 DALI_TEST_CHECK(value.Get<Vector2>() == v);
140 int UtcDaliPropertyValueConstructorsVector2TypeP(void)
142 Property::Value value(Property::VECTOR2);
144 DALI_TEST_CHECK(value.GetType() == Property::VECTOR2);
145 DALI_TEST_CHECK(value.Get<Vector2>() == Vector2::ZERO);
150 int UtcDaliPropertyValueConstructorsVector3P(void)
152 Vector3 v(1.f, 2.f, 3.f);
153 Property::Value value(v);
155 DALI_TEST_CHECK(value.GetType() == Property::VECTOR3);
156 DALI_TEST_CHECK(value.Get<Vector3>() == v);
161 int UtcDaliPropertyValueConstructorsVector3TypeP(void)
163 Property::Value value(Property::VECTOR3);
165 DALI_TEST_CHECK(value.GetType() == Property::VECTOR3);
166 DALI_TEST_CHECK(value.Get<Vector3>() == Vector3());
171 int UtcDaliPropertyValueConstructorsVector4P(void)
173 Vector4 v(1.f, 1.f, 1.f, 0.9f);
174 Property::Value value(v);
176 DALI_TEST_CHECK(value.GetType() == Property::VECTOR4);
177 DALI_TEST_CHECK(value.Get<Vector4>() == v);
182 int UtcDaliPropertyValueConstructorsVector4TypeP(void)
184 Property::Value value(Property::VECTOR4);
186 DALI_TEST_CHECK(value.GetType() == Property::VECTOR4);
187 DALI_TEST_CHECK(value.Get<Vector4>() == Vector4());
192 int UtcDaliPropertyValueConstructorsMatrix3P(void)
194 Matrix3 v(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0);
195 Property::Value value(v);
197 DALI_TEST_CHECK(value.GetType() == Property::MATRIX3);
198 DALI_TEST_CHECK(value.Get<Matrix3>() == v);
203 int UtcDaliPropertyValueConstructorsMatrix3TypeP(void)
205 Property::Value value(Property::MATRIX3);
207 DALI_TEST_CHECK(value.GetType() == Property::MATRIX3);
208 DALI_TEST_CHECK(value.Get<Matrix3>() == Matrix3());
213 int UtcDaliPropertyValueConstructorsMatrixP(void)
215 float a[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
217 Property::Value value(v);
219 DALI_TEST_CHECK(value.GetType() == Property::MATRIX);
220 DALI_TEST_CHECK(value.Get<Matrix>() == v);
225 int UtcDaliPropertyValueConstructorsMatrixTypeP(void)
227 Property::Value value(Property::MATRIX);
229 DALI_TEST_CHECK(value.GetType() == Property::MATRIX);
230 DALI_TEST_CHECK(value.Get<Matrix>() == Matrix());
235 int UtcDaliPropertyValueConstructorsRectP(void)
237 Rect<int> v(1.0, 1.0, 1.0, 1.0);
238 Property::Value value(v);
240 DALI_TEST_EQUALS(value.GetType(), Property::RECTANGLE, TEST_LOCATION);
241 DALI_TEST_CHECK(value.Get<Rect<int> >() == v);
246 int UtcDaliPropertyValueConstructorsRectTypeP(void)
248 Property::Value value(Property::RECTANGLE);
250 DALI_TEST_CHECK(value.GetType() == Property::RECTANGLE);
251 DALI_TEST_CHECK(value.Get<Rect<int> >() == Rect<int>(0, 0, 0, 0));
256 int UtcDaliPropertyValueConstructorsAngleAxisP(void)
258 AngleAxis input(Dali::ANGLE_90, Vector3::XAXIS);
259 Property::Value value(input);
261 DALI_TEST_CHECK(value.GetType() == Property::ROTATION);
262 AngleAxis result = value.Get<AngleAxis>();
263 DALI_TEST_EQUALS(result.angle, input.angle, TEST_LOCATION);
264 DALI_TEST_EQUALS(result.axis, input.axis, TEST_LOCATION);
269 int UtcDaliPropertyValueConstructorsQuaternionP(void)
271 Quaternion v(Radian(Math::PI), Vector3::ZAXIS);
272 Property::Value value(v);
274 DALI_TEST_CHECK(value.GetType() == Property::ROTATION);
275 DALI_TEST_EQUALS(v, value.Get<Quaternion>(), 0.001, TEST_LOCATION);
280 int UtcDaliPropertyValueConstructorsRotationTypeP(void)
282 Property::Value value(Property::ROTATION);
284 DALI_TEST_CHECK(value.GetType() == Property::ROTATION);
285 AngleAxis result = value.Get<AngleAxis>();
286 DALI_TEST_EQUALS(result.angle, Radian(0.f), TEST_LOCATION);
287 DALI_TEST_EQUALS(result.axis, Vector3::ZERO, TEST_LOCATION); // identity quaternion returns a zero angle-axis
292 int UtcDaliPropertyValueConstructorsStringP(void)
295 Property::Value value(v);
297 DALI_TEST_CHECK(value.GetType() == Property::STRING);
298 DALI_TEST_CHECK(value.Get<std::string>() == v);
303 int UtcDaliPropertyValueConstructorsStringTypeP(void)
305 Property::Value value(Property::STRING);
307 DALI_TEST_CHECK(value.GetType() == Property::STRING);
308 DALI_TEST_CHECK(value.Get<std::string>() == std::string());
313 int UtcDaliPropertyValueConstructorsArrayP(void)
316 Property::Value value(foo);
318 DALI_TEST_CHECK(value.GetType() == Property::ARRAY);
319 DALI_TEST_CHECK(value.Get<Property::Array>().Count() == 0);
324 int UtcDaliPropertyValueConstructorsArray2P(void)
327 foo.PushBack(Property::Value());
328 Property::Value value(foo);
330 DALI_TEST_CHECK(value.GetType() == Property::ARRAY);
331 DALI_TEST_CHECK(value.Get<Property::Array>().Count() == 1);
336 int UtcDaliPropertyValueConstructorsArrayTypeP(void)
338 Property::Value value(Property::ARRAY);
340 DALI_TEST_CHECK(value.GetType() == Property::ARRAY);
341 DALI_TEST_CHECK(value.Get<Property::Array>().Count() == 0);
346 int UtcDaliPropertyValueConstructorsMapP(void)
349 Property::Value value(map);
351 DALI_TEST_CHECK(value.GetType() == Property::MAP);
352 DALI_TEST_CHECK(value.Get<Property::Map>().Count() == 0);
357 int UtcDaliPropertyValueConstructorsMap2P(void)
361 Property::Value value(map);
363 DALI_TEST_CHECK(value.GetType() == Property::MAP);
364 DALI_TEST_CHECK(value.Get<Property::Map>().Count() == 1);
369 int UtcDaliPropertyValueConstructorsMapTypeP(void)
371 Property::Value value(Property::MAP);
373 DALI_TEST_CHECK(value.GetType() == Property::MAP);
374 DALI_TEST_CHECK(value.Get<Property::Map>().Count() == 0);
379 int UtcDaliPropertyValueConstructorsExtentsTypeP(void)
381 Property::Value value(Property::EXTENTS);
383 DALI_TEST_CHECK(value.GetType() == Property::EXTENTS);
384 DALI_TEST_CHECK(value.Get<Extents>() == Extents(0u, 0u, 0u, 0u));
389 int UtcDaliPropertyValueConstructorsExtentsType2P(void)
391 Property::Value value(Property::VECTOR4);
393 DALI_TEST_CHECK(value.GetType() == Property::VECTOR4);
394 DALI_TEST_CHECK(value.Get<Extents>() == Extents(0u, 0u, 0u, 0u));
399 int UtcDaliPropertyValueCopyConstructorP(void)
401 Property::Value value;
402 Property::Value value2(value);
403 DALI_TEST_EQUALS(value.GetType(), value2.GetType(), TEST_LOCATION);
404 DALI_TEST_EQUALS(value.GetMap(), value2.GetMap(), TEST_LOCATION);
405 DALI_TEST_EQUALS(value.GetArray(), value2.GetArray(), TEST_LOCATION);
409 int UtcDaliPropertyValueCopyConstructorBoolP(void)
411 CheckCopyCtorP<bool> check(true);
415 int UtcDaliPropertyValueCopyConstructorFloatP(void)
417 CheckCopyCtorP<float> check(1.f);
421 int UtcDaliPropertyValueCopyConstructorIntP(void)
423 CheckCopyCtorP<int> check(1);
427 int UtcDaliPropertyValueCopyConstructoVector2P(void)
429 CheckCopyCtorP<Vector2> check(Vector2(2, 1));
433 int UtcDaliPropertyValueCopyConstructorVector3P(void)
435 CheckCopyCtorP<Vector3> check(Vector3(3.f, 2.f, 1.f));
439 int UtcDaliPropertyValueCopyConstructorVector4P(void)
441 CheckCopyCtorP<Vector3> check(Vector4(4.f, 3.f, 2.f, 1.f));
445 int UtcDaliPropertyValueCopyConstructorMatrix3P(void)
447 CheckCopyCtorP<Matrix3> check(Matrix3::IDENTITY);
451 int UtcDaliPropertyValueCopyConstructorMatrixP(void)
453 CheckCopyCtorP<Matrix> check(Matrix::IDENTITY);
457 int UtcDaliPropertyValueCopyConstructorRectP(void)
459 CheckCopyCtorP<Rect<int> > check(Rect<int>(1.0, 1.0, 1.0, 1.0));
463 int UtcDaliPropertyValueCopyConstructorAngleAxisP(void)
465 CheckCopyCtorP<AngleAxis> check(AngleAxis(Degree(1.0), Vector3(1.0, 1.0, 1.0)));
469 int UtcDaliPropertyValueCopyConstructorQuaternionP(void)
471 CheckCopyCtorP<Quaternion> check(Quaternion(Vector4(1.0, 1.0, 1.0, 1.0)));
475 int UtcDaliPropertyValueCopyConstructorStringP(void)
477 CheckCopyCtorP<std::string> check(std::string("1"));
481 int UtcDaliPropertyValueCopyAssignStringDifferentTypeP(void)
483 Property::Value value1{Vector4(3.f, 2.f, 1.f, 2.0f)};
484 Property::Value value2{"very very long string ..................."};
490 DALI_TEST_EQUALS(value1.GetType(), value2.GetType(), TEST_LOCATION);
491 DALI_TEST_EQUALS(vec1, vec2, TEST_LOCATION);
493 Property::Value value3{Vector4(3.f, 2.f, 1.f, 2.0f)};
494 Property::Value value4{"very very long string ..................."};
498 DALI_TEST_EQUALS(value3.GetType(), value4.GetType(), TEST_LOCATION);
499 DALI_TEST_EQUALS(value3.Get<std::string>(), "very very long string ...................", TEST_LOCATION);
500 DALI_TEST_EQUALS(value3.Get<std::string>(), value4.Get<std::string>(), TEST_LOCATION);
504 int UtcDaliPropertyValueCopyConstructorArrayP(void)
506 Property::Value value1(Property::ARRAY);
507 Property::Array* array = value1.GetArray();
508 array->PushBack(Property::Value(1));
510 Property::Value value2(value1);
511 DALI_TEST_EQUALS(value1.GetType(), value2.GetType(), TEST_LOCATION);
512 DALI_TEST_EQUALS(value1.GetArray()->Count(), value2.GetArray()->Count(), TEST_LOCATION);
517 int UtcDaliPropertyValueCopyConstructorMapP(void)
519 Property::Value value1(Property::MAP);
520 Property::Map* map = value1.GetMap();
521 (*map)["1"] = Property::Value(1);
523 Property::Value value2(value1);
524 DALI_TEST_EQUALS(value1.GetType(), value2.GetType(), TEST_LOCATION);
525 DALI_TEST_EQUALS(value1.GetMap()->Count(), value2.GetMap()->Count(), TEST_LOCATION);
526 DALI_TEST_EQUALS(value1.GetMap()->GetKey(0), value2.GetMap()->GetKey(0), TEST_LOCATION);
531 int UtcDaliPropertyValueMoveConstructor(void)
533 Property::Value value1(Vector4::ONE);
534 DALI_TEST_EQUALS(Property::VECTOR4, value1.GetType(), TEST_LOCATION);
537 DALI_TEST_EQUALS(true, value1.Get(valueVector), TEST_LOCATION); // Able to convert
538 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
540 Property::Value value2(std::move(value1));
541 DALI_TEST_EQUALS(Property::NONE, value1.GetType(), TEST_LOCATION);
542 DALI_TEST_EQUALS(false, value1.Get(valueVector), TEST_LOCATION); // Unable to convert, but no crash either
543 DALI_TEST_EQUALS(Property::VECTOR4, value2.GetType(), TEST_LOCATION);
544 DALI_TEST_EQUALS(true, value2.Get(valueVector), TEST_LOCATION); // Able to convert
545 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
550 int UtcDaliPropertyValueMoveConstructorArray(void)
552 Property::Array array;
556 DALI_TEST_EQUALS(3u, array.Size(), TEST_LOCATION);
558 Property::Value value(std::move(array));
559 DALI_TEST_ASSERTION(array.Size(), "Cannot use an object previously used as an r-value"); // Our local variable should become invalid
561 Property::Array* arrayPtr = value.GetArray();
562 DALI_TEST_CHECK(arrayPtr);
563 DALI_TEST_EQUALS(3u, arrayPtr->Size(), TEST_LOCATION);
568 int UtcDaliPropertyValueMoveConstructorMap(void)
574 DALI_TEST_EQUALS(3u, map.Count(), TEST_LOCATION);
576 Property::Value value(std::move(map));
577 DALI_TEST_ASSERTION(map.Count(), "Cannot use an object previously used as an r-value"); // Our local variable should become invalid
579 Property::Map* mapPtr = value.GetMap();
580 DALI_TEST_CHECK(mapPtr);
581 DALI_TEST_EQUALS(3u, mapPtr->Count(), TEST_LOCATION);
586 int UtcDaliPropertyValueAssignmentSelfP(void)
588 Property::Value value;
589 Property::Value* self = &value;
591 DALI_TEST_EQUALS(value.GetType(), Property::NONE, TEST_LOCATION);
592 DALI_TEST_CHECK(value.GetMap() == NULL);
593 DALI_TEST_CHECK(value.GetArray() == NULL);
597 int UtcDaliPropertyValueAssignmentOperatorNoneP(void)
599 Property::Value value;
600 value = Property::Value(); // type match
601 DALI_TEST_EQUALS(value.GetType(), Property::NONE, TEST_LOCATION);
602 Property::Value copy(false);
603 copy = value; // type mismatch
604 DALI_TEST_EQUALS(value.GetType(), Property::NONE, TEST_LOCATION);
608 int UtcDaliPropertyValueAssignmentOperatorBoolP(void)
610 Property::Value value;
611 value = Property::Value(true); // type mismatch
612 DALI_TEST_CHECK(true == value.Get<bool>());
613 Property::Value copy(false);
614 copy = value; // type match
615 DALI_TEST_CHECK(true == copy.Get<bool>());
619 int UtcDaliPropertyValueAssignmentOperatorIntP(void)
621 Property::Value value;
622 value = Property::Value(10); // type mismatch
623 DALI_TEST_CHECK(10 == value.Get<int>());
624 Property::Value copy(99);
625 copy = value; // type match
626 DALI_TEST_CHECK(10 == copy.Get<int>());
630 int UtcDaliPropertyValueAssignmentOperatorFloatP(void)
632 Property::Value value;
633 value = Property::Value(10.f); // mismatch
634 DALI_TEST_CHECK(Dali::Equals(10.f, value.Get<float>()));
635 Property::Value copy(321.f);
636 copy = value; // match
637 DALI_TEST_CHECK(Dali::Equals(10.f, copy.Get<float>()));
641 int UtcDaliPropertyValueAssignmentOperatorVector2P(void)
643 Property::Value value;
644 value = Property::Value(Vector2(1, 2)); // mismatch
645 DALI_TEST_CHECK(Vector2(1, 2) == value.Get<Vector2>());
646 Property::Value copy(Property::VECTOR2);
647 copy = value; // match
648 DALI_TEST_CHECK(Vector2(1, 2) == copy.Get<Vector2>());
652 int UtcDaliPropertyValueAssignmentOperatorVector3P(void)
654 Property::Value value;
655 value = Property::Value(Vector3(1.f, 2.f, 3.f)); // mismatch
656 DALI_TEST_CHECK(Vector3(1.f, 2.f, 3.f) == value.Get<Vector3>());
657 Property::Value copy(Property::VECTOR3);
658 copy = value; // match
659 DALI_TEST_CHECK(Vector3(1.f, 2.f, 3.f) == copy.Get<Vector3>());
663 int UtcDaliPropertyValueAssignmentOperatorVector4P(void)
665 Property::Value value;
666 value = Property::Value(Vector4(1, 2, 3, 4)); // mismatch
667 DALI_TEST_CHECK(Vector4(1, 2, 3, 4) == value.Get<Vector4>());
668 Property::Value copy(Vector4(0, 1, 2, 3));
669 copy = value; // match
670 DALI_TEST_CHECK(Vector4(1, 2, 3, 4) == copy.Get<Vector4>());
674 int UtcDaliPropertyValueAssignmentOperatorMatrix3P(void)
676 Property::Value value;
677 value = Property::Value(Matrix3::IDENTITY); // mismatch
678 DALI_TEST_CHECK(Matrix3::IDENTITY == value.Get<Matrix3>());
679 Property::Value copy(Property::MATRIX3);
680 copy = value; // match
681 DALI_TEST_CHECK(Matrix3::IDENTITY == copy.Get<Matrix3>());
685 int UtcDaliPropertyValueAssignmentOperatorMatrixP(void)
687 Property::Value value;
688 value = Property::Value(Matrix::IDENTITY); // mismatch
689 DALI_TEST_CHECK(Matrix::IDENTITY == value.Get<Matrix>());
691 Property::Value copy(foo);
692 copy = value; // match
693 DALI_TEST_CHECK(Matrix::IDENTITY == copy.Get<Matrix>());
697 int UtcDaliPropertyValueAssignmentOperatorRectP(void)
699 Property::Value value;
700 typedef Dali::Rect<int> Rectangle;
701 value = Property::Value(Rectangle(4, 3, 2, 1)); // mismatch
702 DALI_TEST_CHECK(Rectangle(4, 3, 2, 1) == value.Get<Rectangle>());
703 Property::Value copy(Property::RECTANGLE);
704 copy = value; // match
707 DALI_TEST_CHECK(Rectangle(4, 3, 2, 1) == copyRect);
711 int UtcDaliPropertyValueAssignmentOperatorQuaternionP(void)
713 Property::Value value;
714 Quaternion result(Radian(Math::PI_2), Vector3::YAXIS);
715 value = Property::Value(result);
717 DALI_TEST_EQUALS(value.Get<Quaternion>(), result, 0.001, TEST_LOCATION);
719 Property::Value copy(Property::ROTATION);
720 copy = value; // match
721 DALI_TEST_EQUALS(copy.Get<Quaternion>(), result, 0.001, TEST_LOCATION);
725 int UtcDaliPropertyValueAssignmentOperatorAngleAxisP(void)
727 Property::Value value;
728 value = Property::Value(AngleAxis(Radian(Math::PI_2), Vector3::XAXIS)); // mismatch
729 DALI_TEST_EQUALS(value.Get<AngleAxis>().axis, Vector3::XAXIS, TEST_LOCATION);
730 DALI_TEST_EQUALS(value.Get<AngleAxis>().angle, Radian(Math::PI_2), TEST_LOCATION);
731 Property::Value copy(Property::ROTATION);
732 copy = value; // match
733 DALI_TEST_EQUALS(value.Get<AngleAxis>().axis, copy.Get<AngleAxis>().axis, TEST_LOCATION);
734 DALI_TEST_EQUALS(value.Get<AngleAxis>().angle, copy.Get<AngleAxis>().angle, TEST_LOCATION);
738 int UtcDaliPropertyValueAssignmentOperatorStringP(void)
740 Property::Value value;
741 value = Property::Value("yes"); // mismatch
742 DALI_TEST_CHECK("yes" == value.Get<std::string>());
743 Property::Value copy("no");
744 copy = value; // match
745 DALI_TEST_CHECK("yes" == copy.Get<std::string>());
749 int UtcDaliPropertyValueAssignmentOperatorArrayP(void)
751 Property::Value value;
752 value = Property::Value(Property::ARRAY); // mismatch
753 value.GetArray()->PushBack(10);
754 DALI_TEST_CHECK(value.GetArray());
755 Property::Value copy(Property::ARRAY);
756 copy = value; // match
757 Property::Array array;
760 array[0].Get(getItem);
761 DALI_TEST_CHECK(getItem == 10);
765 int UtcDaliPropertyValueAssignmentOperatorMapP(void)
767 Property::Value value;
768 value = Property::Value(Property::MAP); // mismatch
769 value.GetMap()->Insert("key", "value");
770 Property::Value copy(Property::MAP); // match
774 DALI_TEST_CHECK(map.GetKey(0) == "key");
778 int UtcDaliPropertyValueAssignmentOperatorExtentsP(void)
780 Property::Value value;
781 value = Property::Value(Extents(4, 3, 2, 1)); // mismatch
782 DALI_TEST_CHECK(Extents(4, 3, 2, 1) == value.Get<Extents>());
783 Property::Value copy(Property::EXTENTS);
784 copy = value; // match
786 copy.Get(copyExtents);
787 DALI_TEST_CHECK(Extents(4, 3, 2, 1) == copyExtents);
791 int UtcDaliPropertyValueMoveAssignmentOperator(void)
793 Property::Value value1(Vector4::ONE);
794 DALI_TEST_EQUALS(Property::VECTOR4, value1.GetType(), TEST_LOCATION);
797 DALI_TEST_EQUALS(true, value1.Get(valueVector), TEST_LOCATION); // Able to convert
798 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
800 Property::Value value2;
801 value2 = std::move(value1);
802 DALI_TEST_EQUALS(Property::NONE, value1.GetType(), TEST_LOCATION);
803 DALI_TEST_EQUALS(false, value1.Get(valueVector), TEST_LOCATION); // Unable to convert, but no crash either
804 DALI_TEST_EQUALS(Property::VECTOR4, value2.GetType(), TEST_LOCATION);
805 DALI_TEST_EQUALS(true, value2.Get(valueVector), TEST_LOCATION); // Able to convert
806 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
808 // Change to another value type
809 value2 = std::move(Property::Value(1.0f));
810 DALI_TEST_EQUALS(false, value2.Get(valueVector), TEST_LOCATION); // Should not be able to convert to a Vector4 now
812 DALI_TEST_EQUALS(true, value2.Get(valueFloat), TEST_LOCATION); // Should be able to convert to a float now
813 DALI_TEST_EQUALS(valueFloat, 1.0f, TEST_LOCATION);
815 // Ensure self assignment doesn't do anything silly
816 value2 = std::move(value2);
817 DALI_TEST_EQUALS(true, value2.Get(valueFloat), TEST_LOCATION);
818 DALI_TEST_EQUALS(valueFloat, 1.0f, TEST_LOCATION);
823 int UtcDaliPropertyValueGetTypeP(void)
825 Property::Value value;
826 DALI_TEST_CHECK(value.GetType() == Property::NONE);
830 int UtcDaliPropertyValueGetBoolP(void)
832 Property::Value value(true);
834 DALI_TEST_CHECK(value.Get(boolean) == true);
835 DALI_TEST_CHECK(value.Get<bool>() == true);
837 DALI_TEST_CHECK(value.Get(string) == false);
838 value = Property::Value(1.f);
839 DALI_TEST_CHECK(value.Get<float>() == 1.f);
843 int UtcDaliPropertyValueGetBoolN(void)
845 Property::Value value;
846 DALI_TEST_CHECK(value.Get<bool>() == false);
848 DALI_TEST_CHECK(value.Get(boolean) == false);
852 int UtcDaliPropertyValueGetFloatP(void)
854 Property::Value value(1.1f);
856 DALI_TEST_EQUALS(1.1f, value.Get<float>(), TEST_LOCATION);
857 DALI_TEST_EQUALS(true, value.Get(flow), TEST_LOCATION);
858 DALI_TEST_EQUALS(1.1f, flow, TEST_LOCATION);
860 Property::Value intValue(100);
861 DALI_TEST_EQUALS(100.f, intValue.Get<float>(), TEST_LOCATION);
862 DALI_TEST_EQUALS(true, intValue.Get(flow), TEST_LOCATION);
863 DALI_TEST_EQUALS(100.f, flow, TEST_LOCATION);
868 int UtcDaliPropertyValueGetFloatN(void)
870 Property::Value value;
872 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
873 DALI_TEST_EQUALS(1.0f, result, TEST_LOCATION); // result is not modified
874 Property::Value value2("");
875 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
876 DALI_TEST_EQUALS(1.0f, result, TEST_LOCATION); // result is not modified
880 int UtcDaliPropertyValueGetIntP(void)
882 Property::Value value(123);
884 DALI_TEST_EQUALS(123, value.Get<int>(), TEST_LOCATION);
885 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
886 DALI_TEST_EQUALS(123, result, TEST_LOCATION);
888 Property::Value floatValue(21.f);
889 DALI_TEST_EQUALS(21, floatValue.Get<int>(), TEST_LOCATION);
890 DALI_TEST_EQUALS(true, floatValue.Get(result), TEST_LOCATION);
891 DALI_TEST_EQUALS(21, result, TEST_LOCATION);
896 int UtcDaliPropertyValueGetIntN(void)
898 Property::Value value;
900 DALI_TEST_EQUALS(0, value.Get<int>(), TEST_LOCATION);
901 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
902 DALI_TEST_EQUALS(10, result, TEST_LOCATION); // result is not modified
903 Property::Value value2("");
904 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
905 DALI_TEST_EQUALS(10, result, TEST_LOCATION); // result is not modified
909 int UtcDaliPropertyValueGetRectP(void)
911 Property::Value value(Rect<int>(1, 2, 3, 4));
912 Rect<int> result(4, 3, 2, 1);
913 DALI_TEST_EQUALS(Rect<int>(1, 2, 3, 4), value.Get<Rect<int> >(), TEST_LOCATION);
914 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
915 DALI_TEST_EQUALS(Rect<int>(1, 2, 3, 4), result, TEST_LOCATION);
919 int UtcDaliPropertyValueGetRectN(void)
921 Property::Value value;
922 Rect<int> result(4, 3, 2, 1);
923 DALI_TEST_EQUALS(Rect<int>(0, 0, 0, 0), value.Get<Rect<int> >(), TEST_LOCATION);
924 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
925 DALI_TEST_EQUALS(Rect<int>(4, 3, 2, 1), result, TEST_LOCATION);
926 Property::Value value2("");
927 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
928 DALI_TEST_EQUALS(Rect<int>(4, 3, 2, 1), result, TEST_LOCATION);
932 int UtcDaliPropertyValueGetVector2P(void)
934 Property::Value value(Vector2(1.0f, 2.0f));
936 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), value.Get<Vector2>(), TEST_LOCATION);
937 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
938 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), result, TEST_LOCATION);
942 int UtcDaliPropertyValueGetVector2fromVector3P(void)
944 Property::Value value(Vector3(1.f, 2.f, 3.f));
946 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), value.Get<Vector2>(), TEST_LOCATION);
947 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
948 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), result, TEST_LOCATION);
952 int UtcDaliPropertyValueGetVector2fromVector4P(void)
954 Property::Value value(Vector4(1.f, 2.f, 3.f, 4.f));
956 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), value.Get<Vector2>(), TEST_LOCATION);
957 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
958 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), result, TEST_LOCATION);
962 int UtcDaliPropertyValueGetVector2N(void)
964 Property::Value value;
966 DALI_TEST_EQUALS(Vector2(0.f, 0.f), value.Get<Vector2>(), TEST_LOCATION);
967 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
968 DALI_TEST_EQUALS(Vector2(), result, TEST_LOCATION);
969 Property::Value value2("");
970 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
971 DALI_TEST_EQUALS(Vector2(), result, TEST_LOCATION);
975 int UtcDaliPropertyValueGetVector3P(void)
977 Property::Value value(Vector3(1.0f, 2.0f, -1.f));
979 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, -1.f), value.Get<Vector3>(), TEST_LOCATION);
980 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
981 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, -1.f), result, TEST_LOCATION);
985 int UtcDaliPropertyValueGetVector3FromVector2P(void)
987 Property::Value value(Vector2(1.0f, 2.0f));
988 Vector3 result(99.f, 88.f, 77.f);
989 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, 0.f), value.Get<Vector3>(), TEST_LOCATION);
990 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
991 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, 0.f), result, TEST_LOCATION);
995 int UtcDaliPropertyValueGetVector3FromVector4P(void)
997 Property::Value value(Vector4(4.f, 3.f, 2.f, 1.f));
999 DALI_TEST_EQUALS(Vector3(4.f, 3.f, 2.f), value.Get<Vector3>(), TEST_LOCATION);
1000 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1001 DALI_TEST_EQUALS(Vector3(4.f, 3.f, 2.f), result, TEST_LOCATION);
1005 int UtcDaliPropertyValueGetVector3N(void)
1007 Property::Value value;
1009 DALI_TEST_EQUALS(Vector3(0.f, 0.f, 0.f), value.Get<Vector3>(), TEST_LOCATION);
1010 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1011 DALI_TEST_EQUALS(Vector3(), result, TEST_LOCATION);
1012 Property::Value value2("");
1013 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1014 DALI_TEST_EQUALS(Vector3(), result, TEST_LOCATION);
1018 int UtcDaliPropertyValueGetVector4P(void)
1020 Property::Value value(Vector4(1.f, 2.f, -1.f, -3.f));
1022 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, -3.f), value.Get<Vector4>(), TEST_LOCATION);
1023 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1024 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, -3.f), result, TEST_LOCATION);
1028 int UtcDaliPropertyValueGetVector4FromVector2P(void)
1030 Property::Value value(Vector2(-1.f, -3.f));
1031 Vector4 result(99.f, 88.f, 77.f, 66.f);
1032 DALI_TEST_EQUALS(Vector4(-1.f, -3.f, 0.f, 0.f), value.Get<Vector4>(), TEST_LOCATION);
1033 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1034 DALI_TEST_EQUALS(Vector4(-1.f, -3.f, 0.f, 0.f), result, TEST_LOCATION);
1038 int UtcDaliPropertyValueGetVector4FromVector3P(void)
1040 Property::Value value(Vector3(1.f, 2.f, -1.f));
1041 Vector4 result(99.f, 88.f, 77.f, 66.f);
1042 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, 0.f), value.Get<Vector4>(), TEST_LOCATION);
1043 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1044 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, 0.f), result, TEST_LOCATION);
1048 int UtcDaliPropertyValueGetVector4N(void)
1050 Property::Value value;
1052 DALI_TEST_EQUALS(Vector4(0.f, 0.f, 0.f, 0.f), value.Get<Vector4>(), TEST_LOCATION);
1053 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1054 DALI_TEST_EQUALS(Vector4(), result, TEST_LOCATION);
1055 Property::Value value2("");
1056 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1057 DALI_TEST_EQUALS(Vector4(), result, TEST_LOCATION);
1061 int UtcDaliPropertyValueGetMatrix3P(void)
1063 Property::Value value(Matrix3(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f));
1065 DALI_TEST_EQUALS(Matrix3(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f), value.Get<Matrix3>(), TEST_LOCATION);
1066 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1067 DALI_TEST_EQUALS(Matrix3(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f), result, TEST_LOCATION);
1071 int UtcDaliPropertyValueGetMatrix3N(void)
1073 Property::Value value;
1074 Matrix3 result(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f);
1075 DALI_TEST_EQUALS(Matrix3(), value.Get<Matrix3>(), TEST_LOCATION);
1076 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1077 DALI_TEST_EQUALS(Matrix3(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f), result, TEST_LOCATION);
1078 Property::Value value2("");
1079 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1080 DALI_TEST_EQUALS(Matrix3(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f), result, TEST_LOCATION);
1084 int UtcDaliPropertyValueGetMatrixP(void)
1086 float matrixValues[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
1087 Matrix input(matrixValues);
1088 Property::Value value(input);
1090 DALI_TEST_EQUALS(input, value.Get<Matrix>(), TEST_LOCATION);
1091 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1092 DALI_TEST_EQUALS(input, result, TEST_LOCATION);
1096 int UtcDaliPropertyValueGetMatrixN(void)
1098 Property::Value value;
1099 Matrix result(Matrix::IDENTITY);
1100 DALI_TEST_EQUALS(Matrix(), value.Get<Matrix>(), TEST_LOCATION);
1101 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1102 DALI_TEST_EQUALS(Matrix::IDENTITY, result, TEST_LOCATION);
1104 Property::Value value2("");
1105 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1106 DALI_TEST_EQUALS(Matrix::IDENTITY, result, TEST_LOCATION);
1110 int UtcDaliPropertyValueGetAngleAxisP(void)
1112 AngleAxis input(Dali::ANGLE_90, Vector3::XAXIS);
1113 Property::Value value(input);
1114 AngleAxis result = value.Get<AngleAxis>();
1115 DALI_TEST_EQUALS(input.angle, result.angle, TEST_LOCATION);
1116 DALI_TEST_EQUALS(input.axis, result.axis, TEST_LOCATION);
1118 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1119 DALI_TEST_EQUALS(input, result, TEST_LOCATION);
1123 int UtcDaliPropertyValueGetAngleAxisN(void)
1125 Property::Value value;
1126 AngleAxis b = value.Get<AngleAxis>();
1128 DALI_TEST_EQUALS((Radian)0.f, b.angle, TEST_LOCATION);
1129 DALI_TEST_EQUALS(Vector3::ZERO, b.axis, TEST_LOCATION);
1130 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1131 DALI_TEST_EQUALS(AngleAxis(), result, TEST_LOCATION);
1133 Property::Value value2("");
1134 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1135 DALI_TEST_EQUALS(AngleAxis(), result, TEST_LOCATION);
1139 int UtcDaliPropertyValueGetQuaternionP(void)
1141 Vector3 axis(1, 1, 0);
1144 Quaternion result(Radian(1.f), axis);
1145 Property::Value value(result);
1147 DALI_TEST_EQUALS(result, value.Get<Quaternion>(), TEST_LOCATION);
1149 DALI_TEST_EQUALS(true, value.Get(test2), TEST_LOCATION);
1153 int UtcDaliPropertyValueGetQuaternionN(void)
1155 Property::Value value;
1156 Vector3 axis(1, 1, 0);
1158 Quaternion result(Radian(1.f), axis);
1159 Quaternion test(result);
1161 DALI_TEST_EQUALS(Quaternion(), value.Get<Quaternion>(), TEST_LOCATION);
1162 DALI_TEST_EQUALS(false, value.Get(test), TEST_LOCATION);
1163 DALI_TEST_EQUALS(test, result, TEST_LOCATION);
1165 Property::Value value2("");
1166 DALI_TEST_EQUALS(false, value2.Get(test), TEST_LOCATION);
1167 DALI_TEST_EQUALS(test, result, TEST_LOCATION);
1171 int UtcDaliPropertyValueGetStringP(void)
1173 Property::Value value(std::string("hello"));
1175 DALI_TEST_EQUALS(std::string("hello"), value.Get<std::string>(), TEST_LOCATION);
1176 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1177 DALI_TEST_EQUALS(std::string("hello"), result, TEST_LOCATION);
1179 Property::Value value2("C hi!");
1180 DALI_TEST_EQUALS("C hi!", value2.Get<std::string>(), TEST_LOCATION);
1181 DALI_TEST_EQUALS(true, value2.Get(result), TEST_LOCATION);
1182 DALI_TEST_EQUALS("C hi!", result, TEST_LOCATION);
1186 int UtcDaliPropertyValueGetStringN(void)
1188 Property::Value value;
1189 std::string result("doesn't change");
1190 DALI_TEST_EQUALS(std::string(), value.Get<std::string>(), TEST_LOCATION);
1191 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1192 DALI_TEST_EQUALS("doesn't change", result, TEST_LOCATION);
1194 Property::Value value2(10);
1195 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1196 DALI_TEST_EQUALS("doesn't change", result, TEST_LOCATION);
1198 Property::Value value3((char*)NULL);
1199 DALI_TEST_EQUALS(true, value3.Get(result), TEST_LOCATION);
1200 DALI_TEST_EQUALS(std::string(), result, TEST_LOCATION);
1204 int UtcDaliPropertyValueGetArrayP(void)
1206 Property::Value value(Property::ARRAY);
1207 DALI_TEST_CHECK(NULL != value.GetArray());
1208 value.GetArray()->PushBack(Property::Value(1));
1209 Property::Array got = value.Get<Property::Array>();
1210 DALI_TEST_CHECK(got[0].Get<int>() == 1);
1211 Property::Array result;
1212 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1213 DALI_TEST_CHECK(result[0].Get<int>() == 1);
1217 int UtcDaliPropertyValueGetArrayN(void)
1219 Property::Value value;
1220 DALI_TEST_CHECK(NULL == value.GetArray());
1221 Property::Array result;
1222 result.PushBack(Property::Value(10));
1223 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1224 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION); // array is not modified
1226 Property::Value value2("");
1227 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1228 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION); // array is not modified
1232 int UtcDaliPropertyValueGetMapP(void)
1234 Property::Value value(Property::MAP);
1235 DALI_TEST_CHECK(NULL == value.GetArray());
1236 DALI_TEST_CHECK(NULL != value.GetMap());
1237 value.GetMap()->Insert("key", Property::Value(1));
1238 Property::Map result = value.Get<Property::Map>();
1239 DALI_TEST_CHECK(result.Find("key")->Get<int>() == 1);
1240 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1241 DALI_TEST_CHECK(result.Find("key")->Get<int>() == 1);
1245 int UtcDaliPropertyValueGetMapN(void)
1247 Property::Value value;
1248 DALI_TEST_CHECK(NULL == value.GetMap());
1249 DALI_TEST_EQUALS(0u, value.Get<Property::Map>().Count(), TEST_LOCATION);
1250 Property::Map result;
1251 result.Insert("key", "value");
1252 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1253 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION);
1255 Property::Value value2("");
1256 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1257 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION); // array is not modified
1261 int UtcDaliPropertyValueGetExtentsP(void)
1263 Property::Value value(Extents(1u, 2u, 3u, 4u));
1264 Extents result(4u, 3u, 2u, 1u);
1265 DALI_TEST_EQUALS(Extents(1u, 2u, 3u, 4u), value.Get<Extents>(), TEST_LOCATION);
1266 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1267 DALI_TEST_EQUALS(Extents(1u, 2u, 3u, 4u), result, TEST_LOCATION);
1271 int UtcDaliPropertyValueEnum(void)
1278 Property::Value value(E::e);
1279 DALI_TEST_EQUALS(static_cast<int>(E::e), static_cast<int>(value.Get<E>()), TEST_LOCATION);
1280 DALI_TEST_EQUALS(static_cast<int>(E::e), value.Get<int>(), TEST_LOCATION);
1282 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1283 DALI_TEST_EQUALS(static_cast<int>(E::e), static_cast<int>(result), TEST_LOCATION);
1285 DALI_TEST_EQUALS(true, value.Get(result2), TEST_LOCATION);
1286 DALI_TEST_EQUALS(static_cast<int>(E::e), result2, TEST_LOCATION);
1290 int UtcDaliPropertyValueOutputStream(void)
1292 TestApplication application;
1293 tet_infoline("Testing Property::Value output stream");
1294 typedef Dali::Rect<int> Rectangle;
1296 Property::Value value(true);
1298 std::ostringstream stream;
1300 DALI_TEST_CHECK(stream.str() == "1")
1304 Property::Value empty;
1305 std::ostringstream stream;
1307 DALI_TEST_EQUALS(stream.str(), "undefined type", TEST_LOCATION);
1311 Property::Value empty(Property::NONE);
1312 std::ostringstream stream;
1314 DALI_TEST_CHECK(stream.str() == "undefined type")
1318 value = Property::Value(20.2f);
1319 std::ostringstream stream;
1321 DALI_TEST_CHECK(stream.str() == "20.2")
1325 value = Property::Value(-25);
1326 std::ostringstream stream;
1328 DALI_TEST_CHECK(stream.str() == "-25")
1332 value = Property::Value(Vector2(1.f, 1.f));
1333 std::ostringstream stream;
1335 DALI_TEST_CHECK(stream.str() == "[1, 1]");
1339 value = Property::Value(Vector3(1.f, 1.f, 1.f));
1340 std::ostringstream stream;
1342 DALI_TEST_CHECK(stream.str() == "[1, 1, 1]");
1346 value = Property::Value(Vector4(-4.f, -3.f, -2.f, -1.f));
1347 std::ostringstream stream;
1349 DALI_TEST_EQUALS(stream.str(), "[-4, -3, -2, -1]", TEST_LOCATION);
1353 value = Property::Value(Matrix3::IDENTITY);
1354 std::ostringstream stream;
1356 DALI_TEST_CHECK(stream.str() == "[ 1, 0, 0, 0, 1, 0, 0, 0, 1 ]");
1360 value = Property::Value(Matrix::IDENTITY);
1361 std::ostringstream stream;
1363 DALI_TEST_CHECK(stream.str() == "[ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]");
1367 value = Property::Value(Rectangle(1, 2, 3, 4));
1368 std::ostringstream stream;
1370 DALI_TEST_CHECK(stream.str() == "[1, 2, 3, 4]");
1374 value = Property::Value(AngleAxis(Dali::ANGLE_120, Vector3::XAXIS));
1375 std::ostringstream stream;
1377 tet_printf("angle axis = %s \n", stream.str().c_str());
1378 DALI_TEST_EQUALS(stream.str(), "[ Axis: [1, 0, 0], Angle: 120 degrees ]", TEST_LOCATION);
1382 value = Property::Value(std::string("Foo"));
1383 std::ostringstream stream;
1385 DALI_TEST_CHECK(stream.str() == "Foo");
1390 map.Insert("key", "value");
1391 map.Insert("duration", 10);
1392 map.Insert("color", Vector4(1.0, 0.5, 1.0, 1.0));
1394 value = Property::Value(map);
1395 std::ostringstream stream;
1397 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1398 DALI_TEST_CHECK(!stream.str().compare("Map(3) = {key:value, duration:10, color:[1, 0.5, 1, 1]}"));
1401 Property::Array array;
1405 value = Property::Value(array);
1406 std::ostringstream stream;
1408 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1409 DALI_TEST_CHECK(!stream.str().compare("Array(3) = [0, 2, 3]"));
1415 Property::Array array;
1417 map2.Insert("key", "value");
1418 map2.Insert("duration", 10);
1419 map.Insert("color", Vector4(1.0, 0.5, 1.0, 1.0));
1420 map.Insert("timePeriod", map2);
1421 array.PushBack(Vector2(1, 0));
1422 array.PushBack(Vector2(0, 1));
1423 array.PushBack(Vector2(1, 0));
1424 array.PushBack(Vector2(0, 0.5));
1425 map.Insert("texCoords", array);
1426 value = Property::Value(map);
1428 std::ostringstream stream;
1431 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1433 DALI_TEST_CHECK(!stream.str().compare("Map(3) = {color:[1, 0.5, 1, 1], timePeriod:Map(2) = {key:value, duration:10}, texCoords:Array(4) = [[1, 0], [0, 1], [1, 0], [0, 0.5]]}"));
1437 value = Property::Value(Extents(1u, 2u, 3u, 4u));
1438 std::ostringstream stream;
1440 DALI_TEST_CHECK(stream.str() == "[1, 2, 3, 4]");