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 UtcDaliPropertyValueCopyConstructorArrayP(void)
483 Property::Value value1(Property::ARRAY);
484 Property::Array* array = value1.GetArray();
485 array->PushBack(Property::Value(1));
487 Property::Value value2(value1);
488 DALI_TEST_EQUALS(value1.GetType(), value2.GetType(), TEST_LOCATION);
489 DALI_TEST_EQUALS(value1.GetArray()->Count(), value2.GetArray()->Count(), TEST_LOCATION);
494 int UtcDaliPropertyValueCopyConstructorMapP(void)
496 Property::Value value1(Property::MAP);
497 Property::Map* map = value1.GetMap();
498 (*map)["1"] = Property::Value(1);
500 Property::Value value2(value1);
501 DALI_TEST_EQUALS(value1.GetType(), value2.GetType(), TEST_LOCATION);
502 DALI_TEST_EQUALS(value1.GetMap()->Count(), value2.GetMap()->Count(), TEST_LOCATION);
503 DALI_TEST_EQUALS(value1.GetMap()->GetKey(0), value2.GetMap()->GetKey(0), TEST_LOCATION);
508 int UtcDaliPropertyValueMoveConstructor(void)
510 Property::Value value1(Vector4::ONE);
511 DALI_TEST_EQUALS(Property::VECTOR4, value1.GetType(), TEST_LOCATION);
514 DALI_TEST_EQUALS(true, value1.Get(valueVector), TEST_LOCATION); // Able to convert
515 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
517 Property::Value value2(std::move(value1));
518 DALI_TEST_EQUALS(Property::NONE, value1.GetType(), TEST_LOCATION);
519 DALI_TEST_EQUALS(false, value1.Get(valueVector), TEST_LOCATION); // Unable to convert, but no crash either
520 DALI_TEST_EQUALS(Property::VECTOR4, value2.GetType(), TEST_LOCATION);
521 DALI_TEST_EQUALS(true, value2.Get(valueVector), TEST_LOCATION); // Able to convert
522 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
527 int UtcDaliPropertyValueMoveConstructorArray(void)
529 Property::Array array;
533 DALI_TEST_EQUALS(3u, array.Size(), TEST_LOCATION);
535 Property::Value value(std::move(array));
536 DALI_TEST_ASSERTION(array.Size(), "Cannot use an object previously used as an r-value"); // Our local variable should become invalid
538 Property::Array* arrayPtr = value.GetArray();
539 DALI_TEST_CHECK(arrayPtr);
540 DALI_TEST_EQUALS(3u, arrayPtr->Size(), TEST_LOCATION);
545 int UtcDaliPropertyValueMoveConstructorMap(void)
551 DALI_TEST_EQUALS(3u, map.Count(), TEST_LOCATION);
553 Property::Value value(std::move(map));
554 DALI_TEST_ASSERTION(map.Count(), "Cannot use an object previously used as an r-value"); // Our local variable should become invalid
556 Property::Map* mapPtr = value.GetMap();
557 DALI_TEST_CHECK(mapPtr);
558 DALI_TEST_EQUALS(3u, mapPtr->Count(), TEST_LOCATION);
563 int UtcDaliPropertyValueAssignmentSelfP(void)
565 Property::Value value;
566 Property::Value* self = &value;
568 DALI_TEST_EQUALS(value.GetType(), Property::NONE, TEST_LOCATION);
569 DALI_TEST_CHECK(value.GetMap() == NULL);
570 DALI_TEST_CHECK(value.GetArray() == NULL);
574 int UtcDaliPropertyValueAssignmentOperatorNoneP(void)
576 Property::Value value;
577 value = Property::Value(); // type match
578 DALI_TEST_EQUALS(value.GetType(), Property::NONE, TEST_LOCATION);
579 Property::Value copy(false);
580 copy = value; // type mismatch
581 DALI_TEST_EQUALS(value.GetType(), Property::NONE, TEST_LOCATION);
585 int UtcDaliPropertyValueAssignmentOperatorBoolP(void)
587 Property::Value value;
588 value = Property::Value(true); // type mismatch
589 DALI_TEST_CHECK(true == value.Get<bool>());
590 Property::Value copy(false);
591 copy = value; // type match
592 DALI_TEST_CHECK(true == copy.Get<bool>());
596 int UtcDaliPropertyValueAssignmentOperatorIntP(void)
598 Property::Value value;
599 value = Property::Value(10); // type mismatch
600 DALI_TEST_CHECK(10 == value.Get<int>());
601 Property::Value copy(99);
602 copy = value; // type match
603 DALI_TEST_CHECK(10 == copy.Get<int>());
607 int UtcDaliPropertyValueAssignmentOperatorFloatP(void)
609 Property::Value value;
610 value = Property::Value(10.f); // mismatch
611 DALI_TEST_CHECK(Dali::Equals(10.f, value.Get<float>()));
612 Property::Value copy(321.f);
613 copy = value; // match
614 DALI_TEST_CHECK(Dali::Equals(10.f, copy.Get<float>()));
618 int UtcDaliPropertyValueAssignmentOperatorVector2P(void)
620 Property::Value value;
621 value = Property::Value(Vector2(1, 2)); // mismatch
622 DALI_TEST_CHECK(Vector2(1, 2) == value.Get<Vector2>());
623 Property::Value copy(Property::VECTOR2);
624 copy = value; // match
625 DALI_TEST_CHECK(Vector2(1, 2) == copy.Get<Vector2>());
629 int UtcDaliPropertyValueAssignmentOperatorVector3P(void)
631 Property::Value value;
632 value = Property::Value(Vector3(1.f, 2.f, 3.f)); // mismatch
633 DALI_TEST_CHECK(Vector3(1.f, 2.f, 3.f) == value.Get<Vector3>());
634 Property::Value copy(Property::VECTOR3);
635 copy = value; // match
636 DALI_TEST_CHECK(Vector3(1.f, 2.f, 3.f) == copy.Get<Vector3>());
640 int UtcDaliPropertyValueAssignmentOperatorVector4P(void)
642 Property::Value value;
643 value = Property::Value(Vector4(1, 2, 3, 4)); // mismatch
644 DALI_TEST_CHECK(Vector4(1, 2, 3, 4) == value.Get<Vector4>());
645 Property::Value copy(Vector4(0, 1, 2, 3));
646 copy = value; // match
647 DALI_TEST_CHECK(Vector4(1, 2, 3, 4) == copy.Get<Vector4>());
651 int UtcDaliPropertyValueAssignmentOperatorMatrix3P(void)
653 Property::Value value;
654 value = Property::Value(Matrix3::IDENTITY); // mismatch
655 DALI_TEST_CHECK(Matrix3::IDENTITY == value.Get<Matrix3>());
656 Property::Value copy(Property::MATRIX3);
657 copy = value; // match
658 DALI_TEST_CHECK(Matrix3::IDENTITY == copy.Get<Matrix3>());
662 int UtcDaliPropertyValueAssignmentOperatorMatrixP(void)
664 Property::Value value;
665 value = Property::Value(Matrix::IDENTITY); // mismatch
666 DALI_TEST_CHECK(Matrix::IDENTITY == value.Get<Matrix>());
668 Property::Value copy(foo);
669 copy = value; // match
670 DALI_TEST_CHECK(Matrix::IDENTITY == copy.Get<Matrix>());
674 int UtcDaliPropertyValueAssignmentOperatorRectP(void)
676 Property::Value value;
677 typedef Dali::Rect<int> Rectangle;
678 value = Property::Value(Rectangle(4, 3, 2, 1)); // mismatch
679 DALI_TEST_CHECK(Rectangle(4, 3, 2, 1) == value.Get<Rectangle>());
680 Property::Value copy(Property::RECTANGLE);
681 copy = value; // match
684 DALI_TEST_CHECK(Rectangle(4, 3, 2, 1) == copyRect);
688 int UtcDaliPropertyValueAssignmentOperatorQuaternionP(void)
690 Property::Value value;
691 Quaternion result(Radian(Math::PI_2), Vector3::YAXIS);
692 value = Property::Value(result);
694 DALI_TEST_EQUALS(value.Get<Quaternion>(), result, 0.001, TEST_LOCATION);
696 Property::Value copy(Property::ROTATION);
697 copy = value; // match
698 DALI_TEST_EQUALS(copy.Get<Quaternion>(), result, 0.001, TEST_LOCATION);
702 int UtcDaliPropertyValueAssignmentOperatorAngleAxisP(void)
704 Property::Value value;
705 value = Property::Value(AngleAxis(Radian(Math::PI_2), Vector3::XAXIS)); // mismatch
706 DALI_TEST_EQUALS(value.Get<AngleAxis>().axis, Vector3::XAXIS, TEST_LOCATION);
707 DALI_TEST_EQUALS(value.Get<AngleAxis>().angle, Radian(Math::PI_2), TEST_LOCATION);
708 Property::Value copy(Property::ROTATION);
709 copy = value; // match
710 DALI_TEST_EQUALS(value.Get<AngleAxis>().axis, copy.Get<AngleAxis>().axis, TEST_LOCATION);
711 DALI_TEST_EQUALS(value.Get<AngleAxis>().angle, copy.Get<AngleAxis>().angle, TEST_LOCATION);
715 int UtcDaliPropertyValueAssignmentOperatorStringP(void)
717 Property::Value value;
718 value = Property::Value("yes"); // mismatch
719 DALI_TEST_CHECK("yes" == value.Get<std::string>());
720 Property::Value copy("no");
721 copy = value; // match
722 DALI_TEST_CHECK("yes" == copy.Get<std::string>());
726 int UtcDaliPropertyValueAssignmentOperatorArrayP(void)
728 Property::Value value;
729 value = Property::Value(Property::ARRAY); // mismatch
730 value.GetArray()->PushBack(10);
731 DALI_TEST_CHECK(value.GetArray());
732 Property::Value copy(Property::ARRAY);
733 copy = value; // match
734 Property::Array array;
737 array[0].Get(getItem);
738 DALI_TEST_CHECK(getItem == 10);
742 int UtcDaliPropertyValueAssignmentOperatorMapP(void)
744 Property::Value value;
745 value = Property::Value(Property::MAP); // mismatch
746 value.GetMap()->Insert("key", "value");
747 Property::Value copy(Property::MAP); // match
751 DALI_TEST_CHECK(map.GetKey(0) == "key");
755 int UtcDaliPropertyValueAssignmentOperatorExtentsP(void)
757 Property::Value value;
758 value = Property::Value(Extents(4, 3, 2, 1)); // mismatch
759 DALI_TEST_CHECK(Extents(4, 3, 2, 1) == value.Get<Extents>());
760 Property::Value copy(Property::EXTENTS);
761 copy = value; // match
763 copy.Get(copyExtents);
764 DALI_TEST_CHECK(Extents(4, 3, 2, 1) == copyExtents);
768 int UtcDaliPropertyValueMoveAssignmentOperator(void)
770 Property::Value value1(Vector4::ONE);
771 DALI_TEST_EQUALS(Property::VECTOR4, value1.GetType(), TEST_LOCATION);
774 DALI_TEST_EQUALS(true, value1.Get(valueVector), TEST_LOCATION); // Able to convert
775 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
777 Property::Value value2;
778 value2 = std::move(value1);
779 DALI_TEST_EQUALS(Property::NONE, value1.GetType(), TEST_LOCATION);
780 DALI_TEST_EQUALS(false, value1.Get(valueVector), TEST_LOCATION); // Unable to convert, but no crash either
781 DALI_TEST_EQUALS(Property::VECTOR4, value2.GetType(), TEST_LOCATION);
782 DALI_TEST_EQUALS(true, value2.Get(valueVector), TEST_LOCATION); // Able to convert
783 DALI_TEST_EQUALS(valueVector, Vector4::ONE, TEST_LOCATION);
785 // Change to another value type
786 value2 = std::move(Property::Value(1.0f));
787 DALI_TEST_EQUALS(false, value2.Get(valueVector), TEST_LOCATION); // Should not be able to convert to a Vector4 now
789 DALI_TEST_EQUALS(true, value2.Get(valueFloat), TEST_LOCATION); // Should be able to convert to a float now
790 DALI_TEST_EQUALS(valueFloat, 1.0f, TEST_LOCATION);
792 // Ensure self assignment doesn't do anything silly
793 value2 = std::move(value2);
794 DALI_TEST_EQUALS(true, value2.Get(valueFloat), TEST_LOCATION);
795 DALI_TEST_EQUALS(valueFloat, 1.0f, TEST_LOCATION);
800 int UtcDaliPropertyValueGetTypeP(void)
802 Property::Value value;
803 DALI_TEST_CHECK(value.GetType() == Property::NONE);
807 int UtcDaliPropertyValueGetBoolP(void)
809 Property::Value value(true);
811 DALI_TEST_CHECK(value.Get(boolean) == true);
812 DALI_TEST_CHECK(value.Get<bool>() == true);
814 DALI_TEST_CHECK(value.Get(string) == false);
815 value = Property::Value(1.f);
816 DALI_TEST_CHECK(value.Get<float>() == 1.f);
820 int UtcDaliPropertyValueGetBoolN(void)
822 Property::Value value;
823 DALI_TEST_CHECK(value.Get<bool>() == false);
825 DALI_TEST_CHECK(value.Get(boolean) == false);
829 int UtcDaliPropertyValueGetFloatP(void)
831 Property::Value value(1.1f);
833 DALI_TEST_EQUALS(1.1f, value.Get<float>(), TEST_LOCATION);
834 DALI_TEST_EQUALS(true, value.Get(flow), TEST_LOCATION);
835 DALI_TEST_EQUALS(1.1f, flow, TEST_LOCATION);
837 Property::Value intValue(100);
838 DALI_TEST_EQUALS(100.f, intValue.Get<float>(), TEST_LOCATION);
839 DALI_TEST_EQUALS(true, intValue.Get(flow), TEST_LOCATION);
840 DALI_TEST_EQUALS(100.f, flow, TEST_LOCATION);
845 int UtcDaliPropertyValueGetFloatN(void)
847 Property::Value value;
849 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
850 DALI_TEST_EQUALS(1.0f, result, TEST_LOCATION); // result is not modified
851 Property::Value value2("");
852 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
853 DALI_TEST_EQUALS(1.0f, result, TEST_LOCATION); // result is not modified
857 int UtcDaliPropertyValueGetIntP(void)
859 Property::Value value(123);
861 DALI_TEST_EQUALS(123, value.Get<int>(), TEST_LOCATION);
862 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
863 DALI_TEST_EQUALS(123, result, TEST_LOCATION);
865 Property::Value floatValue(21.f);
866 DALI_TEST_EQUALS(21, floatValue.Get<int>(), TEST_LOCATION);
867 DALI_TEST_EQUALS(true, floatValue.Get(result), TEST_LOCATION);
868 DALI_TEST_EQUALS(21, result, TEST_LOCATION);
873 int UtcDaliPropertyValueGetIntN(void)
875 Property::Value value;
877 DALI_TEST_EQUALS(0, value.Get<int>(), TEST_LOCATION);
878 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
879 DALI_TEST_EQUALS(10, result, TEST_LOCATION); // result is not modified
880 Property::Value value2("");
881 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
882 DALI_TEST_EQUALS(10, result, TEST_LOCATION); // result is not modified
886 int UtcDaliPropertyValueGetRectP(void)
888 Property::Value value(Rect<int>(1, 2, 3, 4));
889 Rect<int> result(4, 3, 2, 1);
890 DALI_TEST_EQUALS(Rect<int>(1, 2, 3, 4), value.Get<Rect<int> >(), TEST_LOCATION);
891 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
892 DALI_TEST_EQUALS(Rect<int>(1, 2, 3, 4), result, TEST_LOCATION);
896 int UtcDaliPropertyValueGetRectN(void)
898 Property::Value value;
899 Rect<int> result(4, 3, 2, 1);
900 DALI_TEST_EQUALS(Rect<int>(0, 0, 0, 0), value.Get<Rect<int> >(), TEST_LOCATION);
901 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
902 DALI_TEST_EQUALS(Rect<int>(4, 3, 2, 1), result, TEST_LOCATION);
903 Property::Value value2("");
904 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
905 DALI_TEST_EQUALS(Rect<int>(4, 3, 2, 1), result, TEST_LOCATION);
909 int UtcDaliPropertyValueGetVector2P(void)
911 Property::Value value(Vector2(1.0f, 2.0f));
913 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), value.Get<Vector2>(), TEST_LOCATION);
914 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
915 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), result, TEST_LOCATION);
919 int UtcDaliPropertyValueGetVector2fromVector3P(void)
921 Property::Value value(Vector3(1.f, 2.f, 3.f));
923 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), value.Get<Vector2>(), TEST_LOCATION);
924 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
925 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), result, TEST_LOCATION);
929 int UtcDaliPropertyValueGetVector2fromVector4P(void)
931 Property::Value value(Vector4(1.f, 2.f, 3.f, 4.f));
933 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), value.Get<Vector2>(), TEST_LOCATION);
934 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
935 DALI_TEST_EQUALS(Vector2(1.0f, 2.0f), result, TEST_LOCATION);
939 int UtcDaliPropertyValueGetVector2N(void)
941 Property::Value value;
943 DALI_TEST_EQUALS(Vector2(0.f, 0.f), value.Get<Vector2>(), TEST_LOCATION);
944 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
945 DALI_TEST_EQUALS(Vector2(), result, TEST_LOCATION);
946 Property::Value value2("");
947 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
948 DALI_TEST_EQUALS(Vector2(), result, TEST_LOCATION);
952 int UtcDaliPropertyValueGetVector3P(void)
954 Property::Value value(Vector3(1.0f, 2.0f, -1.f));
956 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, -1.f), value.Get<Vector3>(), TEST_LOCATION);
957 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
958 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, -1.f), result, TEST_LOCATION);
962 int UtcDaliPropertyValueGetVector3FromVector2P(void)
964 Property::Value value(Vector2(1.0f, 2.0f));
965 Vector3 result(99.f, 88.f, 77.f);
966 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, 0.f), value.Get<Vector3>(), TEST_LOCATION);
967 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
968 DALI_TEST_EQUALS(Vector3(1.0f, 2.0f, 0.f), result, TEST_LOCATION);
972 int UtcDaliPropertyValueGetVector3FromVector4P(void)
974 Property::Value value(Vector4(4.f, 3.f, 2.f, 1.f));
976 DALI_TEST_EQUALS(Vector3(4.f, 3.f, 2.f), value.Get<Vector3>(), TEST_LOCATION);
977 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
978 DALI_TEST_EQUALS(Vector3(4.f, 3.f, 2.f), result, TEST_LOCATION);
982 int UtcDaliPropertyValueGetVector3N(void)
984 Property::Value value;
986 DALI_TEST_EQUALS(Vector3(0.f, 0.f, 0.f), value.Get<Vector3>(), TEST_LOCATION);
987 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
988 DALI_TEST_EQUALS(Vector3(), result, TEST_LOCATION);
989 Property::Value value2("");
990 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
991 DALI_TEST_EQUALS(Vector3(), result, TEST_LOCATION);
995 int UtcDaliPropertyValueGetVector4P(void)
997 Property::Value value(Vector4(1.f, 2.f, -1.f, -3.f));
999 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, -3.f), value.Get<Vector4>(), TEST_LOCATION);
1000 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1001 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, -3.f), result, TEST_LOCATION);
1005 int UtcDaliPropertyValueGetVector4FromVector2P(void)
1007 Property::Value value(Vector2(-1.f, -3.f));
1008 Vector4 result(99.f, 88.f, 77.f, 66.f);
1009 DALI_TEST_EQUALS(Vector4(-1.f, -3.f, 0.f, 0.f), value.Get<Vector4>(), TEST_LOCATION);
1010 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1011 DALI_TEST_EQUALS(Vector4(-1.f, -3.f, 0.f, 0.f), result, TEST_LOCATION);
1015 int UtcDaliPropertyValueGetVector4FromVector3P(void)
1017 Property::Value value(Vector3(1.f, 2.f, -1.f));
1018 Vector4 result(99.f, 88.f, 77.f, 66.f);
1019 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, 0.f), value.Get<Vector4>(), TEST_LOCATION);
1020 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1021 DALI_TEST_EQUALS(Vector4(1.f, 2.f, -1.f, 0.f), result, TEST_LOCATION);
1025 int UtcDaliPropertyValueGetVector4N(void)
1027 Property::Value value;
1029 DALI_TEST_EQUALS(Vector4(0.f, 0.f, 0.f, 0.f), value.Get<Vector4>(), TEST_LOCATION);
1030 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1031 DALI_TEST_EQUALS(Vector4(), result, TEST_LOCATION);
1032 Property::Value value2("");
1033 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1034 DALI_TEST_EQUALS(Vector4(), result, TEST_LOCATION);
1038 int UtcDaliPropertyValueGetMatrix3P(void)
1040 Property::Value value(Matrix3(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f));
1042 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);
1043 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1044 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);
1048 int UtcDaliPropertyValueGetMatrix3N(void)
1050 Property::Value value;
1051 Matrix3 result(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f);
1052 DALI_TEST_EQUALS(Matrix3(), value.Get<Matrix3>(), TEST_LOCATION);
1053 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1054 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);
1055 Property::Value value2("");
1056 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1057 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);
1061 int UtcDaliPropertyValueGetMatrixP(void)
1063 float matrixValues[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
1064 Matrix input(matrixValues);
1065 Property::Value value(input);
1067 DALI_TEST_EQUALS(input, value.Get<Matrix>(), TEST_LOCATION);
1068 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1069 DALI_TEST_EQUALS(input, result, TEST_LOCATION);
1073 int UtcDaliPropertyValueGetMatrixN(void)
1075 Property::Value value;
1076 Matrix result(Matrix::IDENTITY);
1077 DALI_TEST_EQUALS(Matrix(), value.Get<Matrix>(), TEST_LOCATION);
1078 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1079 DALI_TEST_EQUALS(Matrix::IDENTITY, result, TEST_LOCATION);
1081 Property::Value value2("");
1082 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1083 DALI_TEST_EQUALS(Matrix::IDENTITY, result, TEST_LOCATION);
1087 int UtcDaliPropertyValueGetAngleAxisP(void)
1089 AngleAxis input(Dali::ANGLE_90, Vector3::XAXIS);
1090 Property::Value value(input);
1091 AngleAxis result = value.Get<AngleAxis>();
1092 DALI_TEST_EQUALS(input.angle, result.angle, TEST_LOCATION);
1093 DALI_TEST_EQUALS(input.axis, result.axis, TEST_LOCATION);
1095 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1096 DALI_TEST_EQUALS(input, result, TEST_LOCATION);
1100 int UtcDaliPropertyValueGetAngleAxisN(void)
1102 Property::Value value;
1103 AngleAxis b = value.Get<AngleAxis>();
1105 DALI_TEST_EQUALS((Radian)0.f, b.angle, TEST_LOCATION);
1106 DALI_TEST_EQUALS(Vector3::ZERO, b.axis, TEST_LOCATION);
1107 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1108 DALI_TEST_EQUALS(AngleAxis(), result, TEST_LOCATION);
1110 Property::Value value2("");
1111 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1112 DALI_TEST_EQUALS(AngleAxis(), result, TEST_LOCATION);
1116 int UtcDaliPropertyValueGetQuaternionP(void)
1118 Vector3 axis(1, 1, 0);
1121 Quaternion result(Radian(1.f), axis);
1122 Property::Value value(result);
1124 DALI_TEST_EQUALS(result, value.Get<Quaternion>(), TEST_LOCATION);
1126 DALI_TEST_EQUALS(true, value.Get(test2), TEST_LOCATION);
1130 int UtcDaliPropertyValueGetQuaternionN(void)
1132 Property::Value value;
1133 Vector3 axis(1, 1, 0);
1135 Quaternion result(Radian(1.f), axis);
1136 Quaternion test(result);
1138 DALI_TEST_EQUALS(Quaternion(), value.Get<Quaternion>(), TEST_LOCATION);
1139 DALI_TEST_EQUALS(false, value.Get(test), TEST_LOCATION);
1140 DALI_TEST_EQUALS(test, result, TEST_LOCATION);
1142 Property::Value value2("");
1143 DALI_TEST_EQUALS(false, value2.Get(test), TEST_LOCATION);
1144 DALI_TEST_EQUALS(test, result, TEST_LOCATION);
1148 int UtcDaliPropertyValueGetStringP(void)
1150 Property::Value value(std::string("hello"));
1152 DALI_TEST_EQUALS(std::string("hello"), value.Get<std::string>(), TEST_LOCATION);
1153 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1154 DALI_TEST_EQUALS(std::string("hello"), result, TEST_LOCATION);
1156 Property::Value value2("C hi!");
1157 DALI_TEST_EQUALS("C hi!", value2.Get<std::string>(), TEST_LOCATION);
1158 DALI_TEST_EQUALS(true, value2.Get(result), TEST_LOCATION);
1159 DALI_TEST_EQUALS("C hi!", result, TEST_LOCATION);
1163 int UtcDaliPropertyValueGetStringN(void)
1165 Property::Value value;
1166 std::string result("doesn't change");
1167 DALI_TEST_EQUALS(std::string(), value.Get<std::string>(), TEST_LOCATION);
1168 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1169 DALI_TEST_EQUALS("doesn't change", result, TEST_LOCATION);
1171 Property::Value value2(10);
1172 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1173 DALI_TEST_EQUALS("doesn't change", result, TEST_LOCATION);
1175 Property::Value value3((char*)NULL);
1176 DALI_TEST_EQUALS(true, value3.Get(result), TEST_LOCATION);
1177 DALI_TEST_EQUALS(std::string(), result, TEST_LOCATION);
1181 int UtcDaliPropertyValueGetArrayP(void)
1183 Property::Value value(Property::ARRAY);
1184 DALI_TEST_CHECK(NULL != value.GetArray());
1185 value.GetArray()->PushBack(Property::Value(1));
1186 Property::Array got = value.Get<Property::Array>();
1187 DALI_TEST_CHECK(got[0].Get<int>() == 1);
1188 Property::Array result;
1189 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1190 DALI_TEST_CHECK(result[0].Get<int>() == 1);
1194 int UtcDaliPropertyValueGetArrayN(void)
1196 Property::Value value;
1197 DALI_TEST_CHECK(NULL == value.GetArray());
1198 Property::Array result;
1199 result.PushBack(Property::Value(10));
1200 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1201 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION); // array is not modified
1203 Property::Value value2("");
1204 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1205 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION); // array is not modified
1209 int UtcDaliPropertyValueGetMapP(void)
1211 Property::Value value(Property::MAP);
1212 DALI_TEST_CHECK(NULL == value.GetArray());
1213 DALI_TEST_CHECK(NULL != value.GetMap());
1214 value.GetMap()->Insert("key", Property::Value(1));
1215 Property::Map result = value.Get<Property::Map>();
1216 DALI_TEST_CHECK(result.Find("key")->Get<int>() == 1);
1217 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1218 DALI_TEST_CHECK(result.Find("key")->Get<int>() == 1);
1222 int UtcDaliPropertyValueGetMapN(void)
1224 Property::Value value;
1225 DALI_TEST_CHECK(NULL == value.GetMap());
1226 DALI_TEST_EQUALS(0u, value.Get<Property::Map>().Count(), TEST_LOCATION);
1227 Property::Map result;
1228 result.Insert("key", "value");
1229 DALI_TEST_EQUALS(false, value.Get(result), TEST_LOCATION);
1230 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION);
1232 Property::Value value2("");
1233 DALI_TEST_EQUALS(false, value2.Get(result), TEST_LOCATION);
1234 DALI_TEST_EQUALS(1u, result.Count(), TEST_LOCATION); // array is not modified
1238 int UtcDaliPropertyValueGetExtentsP(void)
1240 Property::Value value(Extents(1u, 2u, 3u, 4u));
1241 Extents result(4u, 3u, 2u, 1u);
1242 DALI_TEST_EQUALS(Extents(1u, 2u, 3u, 4u), value.Get<Extents>(), TEST_LOCATION);
1243 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1244 DALI_TEST_EQUALS(Extents(1u, 2u, 3u, 4u), result, TEST_LOCATION);
1248 int UtcDaliPropertyValueEnum(void)
1255 Property::Value value(E::e);
1256 DALI_TEST_EQUALS(static_cast<int>(E::e), static_cast<int>(value.Get<E>()), TEST_LOCATION);
1257 DALI_TEST_EQUALS(static_cast<int>(E::e), value.Get<int>(), TEST_LOCATION);
1259 DALI_TEST_EQUALS(true, value.Get(result), TEST_LOCATION);
1260 DALI_TEST_EQUALS(static_cast<int>(E::e), static_cast<int>(result), TEST_LOCATION);
1262 DALI_TEST_EQUALS(true, value.Get(result2), TEST_LOCATION);
1263 DALI_TEST_EQUALS(static_cast<int>(E::e), result2, TEST_LOCATION);
1267 int UtcDaliPropertyValueOutputStream(void)
1269 TestApplication application;
1270 tet_infoline("Testing Property::Value output stream");
1271 typedef Dali::Rect<int> Rectangle;
1273 Property::Value value(true);
1275 std::ostringstream stream;
1277 DALI_TEST_CHECK(stream.str() == "1")
1281 Property::Value empty;
1282 std::ostringstream stream;
1284 DALI_TEST_EQUALS(stream.str(), "undefined type", TEST_LOCATION);
1288 Property::Value empty(Property::NONE);
1289 std::ostringstream stream;
1291 DALI_TEST_CHECK(stream.str() == "undefined type")
1295 value = Property::Value(20.2f);
1296 std::ostringstream stream;
1298 DALI_TEST_CHECK(stream.str() == "20.2")
1302 value = Property::Value(-25);
1303 std::ostringstream stream;
1305 DALI_TEST_CHECK(stream.str() == "-25")
1309 value = Property::Value(Vector2(1.f, 1.f));
1310 std::ostringstream stream;
1312 DALI_TEST_CHECK(stream.str() == "[1, 1]");
1316 value = Property::Value(Vector3(1.f, 1.f, 1.f));
1317 std::ostringstream stream;
1319 DALI_TEST_CHECK(stream.str() == "[1, 1, 1]");
1323 value = Property::Value(Vector4(-4.f, -3.f, -2.f, -1.f));
1324 std::ostringstream stream;
1326 DALI_TEST_EQUALS(stream.str(), "[-4, -3, -2, -1]", TEST_LOCATION);
1330 value = Property::Value(Matrix3::IDENTITY);
1331 std::ostringstream stream;
1333 DALI_TEST_CHECK(stream.str() == "[ 1, 0, 0, 0, 1, 0, 0, 0, 1 ]");
1337 value = Property::Value(Matrix::IDENTITY);
1338 std::ostringstream stream;
1340 DALI_TEST_CHECK(stream.str() == "[ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]");
1344 value = Property::Value(Rectangle(1, 2, 3, 4));
1345 std::ostringstream stream;
1347 DALI_TEST_CHECK(stream.str() == "[1, 2, 3, 4]");
1351 value = Property::Value(AngleAxis(Dali::ANGLE_120, Vector3::XAXIS));
1352 std::ostringstream stream;
1354 tet_printf("angle axis = %s \n", stream.str().c_str());
1355 DALI_TEST_EQUALS(stream.str(), "[ Axis: [1, 0, 0], Angle: 120 degrees ]", TEST_LOCATION);
1359 value = Property::Value(std::string("Foo"));
1360 std::ostringstream stream;
1362 DALI_TEST_CHECK(stream.str() == "Foo");
1367 map.Insert("key", "value");
1368 map.Insert("duration", 10);
1369 map.Insert("color", Vector4(1.0, 0.5, 1.0, 1.0));
1371 value = Property::Value(map);
1372 std::ostringstream stream;
1374 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1375 DALI_TEST_CHECK(!stream.str().compare("Map(3) = {key:value, duration:10, color:[1, 0.5, 1, 1]}"));
1378 Property::Array array;
1382 value = Property::Value(array);
1383 std::ostringstream stream;
1385 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1386 DALI_TEST_CHECK(!stream.str().compare("Array(3) = [0, 2, 3]"));
1392 Property::Array array;
1394 map2.Insert("key", "value");
1395 map2.Insert("duration", 10);
1396 map.Insert("color", Vector4(1.0, 0.5, 1.0, 1.0));
1397 map.Insert("timePeriod", map2);
1398 array.PushBack(Vector2(1, 0));
1399 array.PushBack(Vector2(0, 1));
1400 array.PushBack(Vector2(1, 0));
1401 array.PushBack(Vector2(0, 0.5));
1402 map.Insert("texCoords", array);
1403 value = Property::Value(map);
1405 std::ostringstream stream;
1408 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1410 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]]}"));
1414 value = Property::Value(Extents(1u, 2u, 3u, 4u));
1415 std::ostringstream stream;
1417 DALI_TEST_CHECK(stream.str() == "[1, 2, 3, 4]");