2 * Copyright (c) 2019 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>
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;
52 int UtcDaliPropertyValueConstructorsNoneP(void)
54 Property::Value value;
56 DALI_TEST_CHECK( value.GetType() == Property::NONE );
61 int UtcDaliPropertyValueConstructorsNoneTypeP(void)
63 Property::Value value( Property::NONE );
65 DALI_TEST_CHECK( value.GetType() == Property::NONE );
70 int UtcDaliPropertyValueConstructorsBoolP(void)
72 Property::Value value(true);
74 DALI_TEST_CHECK( value.GetType() == Property::BOOLEAN );
75 DALI_TEST_CHECK( value.Get<bool>() == true );
80 int UtcDaliPropertyValueConstructorBoolTypeP(void)
82 Property::Value value(Property::BOOLEAN);
84 DALI_TEST_CHECK( value.GetType() == Property::BOOLEAN );
85 DALI_TEST_CHECK( value.Get<bool>() == false );
90 int UtcDaliPropertyValueConstructorsFloatP(void)
92 Property::Value value(2.f);
94 DALI_TEST_CHECK( value.GetType() == Property::FLOAT );
95 DALI_TEST_CHECK( value.Get<float>() == 2.f );
100 int UtcDaliPropertyValueConstructorsFloatTypeP(void)
102 Property::Value value(Property::FLOAT);
104 DALI_TEST_CHECK( value.GetType() == Property::FLOAT );
105 DALI_TEST_CHECK( value.Get<float>() == 0.f );
110 int UtcDaliPropertyValueConstructorsIntP(void)
112 Property::Value value(1);
114 DALI_TEST_CHECK( value.GetType() == Property::INTEGER );
115 DALI_TEST_CHECK( value.Get<int>() == 1 );
120 int UtcDaliPropertyValueConstructorsIntTypeP(void)
122 Property::Value value(Property::INTEGER);
124 DALI_TEST_CHECK( value.GetType() == Property::INTEGER );
125 DALI_TEST_CHECK( value.Get<int>() == 0 );
130 int UtcDaliPropertyValueConstructorsVector2P(void)
133 Property::Value value(v);
135 DALI_TEST_CHECK( value.GetType() == Property::VECTOR2 );
136 DALI_TEST_CHECK( value.Get<Vector2>() == v );
141 int UtcDaliPropertyValueConstructorsVector2TypeP(void)
143 Property::Value value( Property::VECTOR2 );
145 DALI_TEST_CHECK( value.GetType() == Property::VECTOR2 );
146 DALI_TEST_CHECK( value.Get<Vector2>() == Vector2::ZERO );
151 int UtcDaliPropertyValueConstructorsVector3P(void)
153 Vector3 v(1.f,2.f,3.f);
154 Property::Value value(v);
156 DALI_TEST_CHECK( value.GetType() == Property::VECTOR3 );
157 DALI_TEST_CHECK( value.Get<Vector3>() == v );
162 int UtcDaliPropertyValueConstructorsVector3TypeP(void)
164 Property::Value value( Property::VECTOR3 );
166 DALI_TEST_CHECK( value.GetType() == Property::VECTOR3 );
167 DALI_TEST_CHECK( value.Get<Vector3>() == Vector3() );
172 int UtcDaliPropertyValueConstructorsVector4P(void)
174 Vector4 v(1.f,1.f,1.f,0.9f);
175 Property::Value value(v);
177 DALI_TEST_CHECK( value.GetType() == Property::VECTOR4 );
178 DALI_TEST_CHECK( value.Get<Vector4>() == v );
183 int UtcDaliPropertyValueConstructorsVector4TypeP(void)
185 Property::Value value( Property::VECTOR4 );
187 DALI_TEST_CHECK( value.GetType() == Property::VECTOR4 );
188 DALI_TEST_CHECK( value.Get<Vector4>() == Vector4() );
193 int UtcDaliPropertyValueConstructorsMatrix3P(void)
195 Matrix3 v(1.0,1.0,1.0, 1.0,1.0,1.0, 1.0,1.0,1.0);
196 Property::Value value(v);
198 DALI_TEST_CHECK( value.GetType() == Property::MATRIX3 );
199 DALI_TEST_CHECK( value.Get<Matrix3>() == v );
204 int UtcDaliPropertyValueConstructorsMatrix3TypeP(void)
206 Property::Value value( Property::MATRIX3 );
208 DALI_TEST_CHECK( value.GetType() == Property::MATRIX3 );
209 DALI_TEST_CHECK( value.Get<Matrix3>() == Matrix3() );
214 int UtcDaliPropertyValueConstructorsMatrixP(void)
216 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};
218 Property::Value value(v);
220 DALI_TEST_CHECK( value.GetType() == Property::MATRIX );
221 DALI_TEST_CHECK( value.Get<Matrix>() == v );
226 int UtcDaliPropertyValueConstructorsMatrixTypeP(void)
228 Property::Value value( Property::MATRIX );
230 DALI_TEST_CHECK( value.GetType() == Property::MATRIX );
231 DALI_TEST_CHECK( value.Get<Matrix>() == Matrix() );
236 int UtcDaliPropertyValueConstructorsRectP(void)
238 Rect<int> v(1.0,1.0,1.0,1.0);
239 Property::Value value(v);
241 DALI_TEST_EQUALS( value.GetType(), Property::RECTANGLE, TEST_LOCATION );
242 DALI_TEST_CHECK( value.Get<Rect<int> >() == v );
247 int UtcDaliPropertyValueConstructorsRectTypeP(void)
249 Property::Value value( Property::RECTANGLE );
251 DALI_TEST_CHECK( value.GetType() == Property::RECTANGLE );
252 DALI_TEST_CHECK( value.Get<Rect<int> >() == Rect<int>(0,0,0,0) );
257 int UtcDaliPropertyValueConstructorsAngleAxisP(void)
259 AngleAxis input( Dali::ANGLE_90, Vector3::XAXIS );
260 Property::Value value( input );
262 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
263 AngleAxis result = value.Get<AngleAxis>();
264 DALI_TEST_EQUALS( result.angle, input.angle, TEST_LOCATION );
265 DALI_TEST_EQUALS( result.axis, input.axis, TEST_LOCATION );
270 int UtcDaliPropertyValueConstructorsQuaternionP(void)
272 Quaternion v( Radian( Math::PI ), Vector3::ZAXIS );
273 Property::Value value(v);
275 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
276 DALI_TEST_EQUALS( v, value.Get<Quaternion>(), 0.001, TEST_LOCATION);
281 int UtcDaliPropertyValueConstructorsRotationTypeP(void)
283 Property::Value value( Property::ROTATION );
285 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
286 AngleAxis result = value.Get<AngleAxis>();
287 DALI_TEST_EQUALS( result.angle, Radian(0.f), TEST_LOCATION );
288 DALI_TEST_EQUALS( result.axis, Vector3::ZERO, TEST_LOCATION ); // identity quaternion returns a zero angle-axis
293 int UtcDaliPropertyValueConstructorsStringP(void)
296 Property::Value value(v);
298 DALI_TEST_CHECK( value.GetType() == Property::STRING );
299 DALI_TEST_CHECK( value.Get<std::string>() == v );
304 int UtcDaliPropertyValueConstructorsStringTypeP(void)
306 Property::Value value( Property::STRING );
308 DALI_TEST_CHECK( value.GetType() == Property::STRING );
309 DALI_TEST_CHECK( value.Get<std::string>() == std::string() );
314 int UtcDaliPropertyValueConstructorsArrayP(void)
317 Property::Value value( foo );
319 DALI_TEST_CHECK( value.GetType() == Property::ARRAY );
320 DALI_TEST_CHECK( value.Get<Property::Array>().Count() == 0 );
325 int UtcDaliPropertyValueConstructorsArray2P(void)
328 foo.PushBack( Property::Value() );
329 Property::Value value( foo );
331 DALI_TEST_CHECK( value.GetType() == Property::ARRAY );
332 DALI_TEST_CHECK( value.Get<Property::Array>().Count() == 1 );
337 int UtcDaliPropertyValueConstructorsArrayTypeP(void)
339 Property::Value value(Property::ARRAY);
341 DALI_TEST_CHECK( value.GetType() == Property::ARRAY );
342 DALI_TEST_CHECK( value.Get<Property::Array>().Count() == 0 );
347 int UtcDaliPropertyValueConstructorsMapP(void)
350 Property::Value value( map );
352 DALI_TEST_CHECK( value.GetType() == Property::MAP );
353 DALI_TEST_CHECK( value.Get<Property::Map>().Count() == 0 );
358 int UtcDaliPropertyValueConstructorsMap2P(void)
361 map.Insert( "", "" );
362 Property::Value value( map );
364 DALI_TEST_CHECK( value.GetType() == Property::MAP );
365 DALI_TEST_CHECK( value.Get<Property::Map>().Count() == 1 );
370 int UtcDaliPropertyValueConstructorsMapTypeP(void)
372 Property::Value value(Property::MAP);
374 DALI_TEST_CHECK( value.GetType() == Property::MAP );
375 DALI_TEST_CHECK( value.Get<Property::Map>().Count() == 0 );
380 int UtcDaliPropertyValueConstructorsExtentsTypeP(void)
382 Property::Value value( Property::EXTENTS );
384 DALI_TEST_CHECK( value.GetType() == Property::EXTENTS );
385 DALI_TEST_CHECK( value.Get<Extents>() == Extents( 0u, 0u, 0u, 0u ) );
390 int UtcDaliPropertyValueConstructorsExtentsType2P(void)
392 Property::Value value( Property::VECTOR4 );
394 DALI_TEST_CHECK( value.GetType() == Property::VECTOR4 );
395 DALI_TEST_CHECK( value.Get<Extents>() == Extents( 0u, 0u, 0u, 0u ) );
400 int UtcDaliPropertyValueCopyConstructorP(void)
402 Property::Value value;
403 Property::Value value2( value );
404 DALI_TEST_EQUALS( value.GetType(), value2.GetType(), TEST_LOCATION );
405 DALI_TEST_EQUALS( value.GetMap(), value2.GetMap(), TEST_LOCATION );
406 DALI_TEST_EQUALS( value.GetArray(), value2.GetArray(), TEST_LOCATION );
410 int UtcDaliPropertyValueCopyConstructorBoolP(void)
412 CheckCopyCtorP<bool> check(true);
416 int UtcDaliPropertyValueCopyConstructorFloatP(void)
418 CheckCopyCtorP<float> check(1.f);
422 int UtcDaliPropertyValueCopyConstructorIntP(void)
424 CheckCopyCtorP<int> check(1);
428 int UtcDaliPropertyValueCopyConstructoVector2P(void)
430 CheckCopyCtorP<Vector2> check( Vector2(2,1) );
434 int UtcDaliPropertyValueCopyConstructorVector3P(void)
436 CheckCopyCtorP<Vector3> check( Vector3(3.f,2.f,1.f) );
440 int UtcDaliPropertyValueCopyConstructorVector4P(void)
442 CheckCopyCtorP<Vector3> check( Vector4(4.f,3.f,2.f,1.f) );
446 int UtcDaliPropertyValueCopyConstructorMatrix3P(void)
448 CheckCopyCtorP<Matrix3> check( Matrix3::IDENTITY );
452 int UtcDaliPropertyValueCopyConstructorMatrixP(void)
454 CheckCopyCtorP<Matrix> check(Matrix::IDENTITY);
458 int UtcDaliPropertyValueCopyConstructorRectP(void)
460 CheckCopyCtorP<Rect<int> > check( Rect<int>(1.0,1.0,1.0,1.0) );
464 int UtcDaliPropertyValueCopyConstructorAngleAxisP(void)
466 CheckCopyCtorP<AngleAxis> check( AngleAxis(Degree(1.0), Vector3(1.0,1.0,1.0)) );
470 int UtcDaliPropertyValueCopyConstructorQuaternionP(void)
472 CheckCopyCtorP<Quaternion> check( Quaternion( Vector4(1.0, 1.0, 1.0, 1.0) ) );
476 int UtcDaliPropertyValueCopyConstructorStringP(void)
478 CheckCopyCtorP<std::string> check( std::string("1") );
482 int UtcDaliPropertyValueCopyConstructorArrayP(void)
484 Property::Value value1(Property::ARRAY);
485 Property::Array* array= value1.GetArray();
486 array->PushBack(Property::Value(1));
488 Property::Value value2( value1 );
489 DALI_TEST_EQUALS( value1.GetType(), value2.GetType(), TEST_LOCATION );
490 DALI_TEST_EQUALS( value1.GetArray()->Count(), value2.GetArray()->Count(), TEST_LOCATION );
495 int UtcDaliPropertyValueCopyConstructorMapP(void)
497 Property::Value value1(Property::MAP);
498 Property::Map* map = value1.GetMap();
499 (*map)["1"] = Property::Value(1);
501 Property::Value value2( value1 );
502 DALI_TEST_EQUALS( value1.GetType(), value2.GetType(), TEST_LOCATION );
503 DALI_TEST_EQUALS( value1.GetMap()->Count(), value2.GetMap()->Count(), TEST_LOCATION );
504 DALI_TEST_EQUALS( value1.GetMap()->GetKey( 0 ), value2.GetMap()->GetKey( 0 ), TEST_LOCATION );
509 int UtcDaliPropertyValueMoveConstructor(void)
511 Property::Value value1( Vector4::ONE );
512 DALI_TEST_EQUALS( Property::VECTOR4, value1.GetType(), TEST_LOCATION );
515 DALI_TEST_EQUALS( true, value1.Get( valueVector ), TEST_LOCATION ); // Able to convert
516 DALI_TEST_EQUALS( valueVector, Vector4::ONE, TEST_LOCATION );
518 Property::Value value2( std::move( value1 ) );
519 DALI_TEST_EQUALS( Property::NONE, value1.GetType(), TEST_LOCATION );
520 DALI_TEST_EQUALS( false, value1.Get( valueVector ), TEST_LOCATION ); // Unable to convert, but no crash either
521 DALI_TEST_EQUALS( Property::VECTOR4, value2.GetType(), TEST_LOCATION );
522 DALI_TEST_EQUALS( true, value2.Get( valueVector ), TEST_LOCATION ); // Able to convert
523 DALI_TEST_EQUALS( valueVector, Vector4::ONE, TEST_LOCATION );
528 int UtcDaliPropertyValueMoveConstructorArray(void)
530 Property::Array array;
534 DALI_TEST_EQUALS( 3u, array.Size(), TEST_LOCATION );
536 Property::Value value( std::move( array ) );
537 DALI_TEST_ASSERTION( array.Size(), "Cannot use an object previously used as an r-value" ); // Our local variable should become invalid
539 Property::Array* arrayPtr = value.GetArray();
540 DALI_TEST_CHECK( arrayPtr );
541 DALI_TEST_EQUALS( 3u, arrayPtr->Size(), TEST_LOCATION );
546 int UtcDaliPropertyValueMoveConstructorMap(void)
552 DALI_TEST_EQUALS( 3u, map.Count(), TEST_LOCATION );
554 Property::Value value( std::move( map ) );
555 DALI_TEST_ASSERTION( map.Count(), "Cannot use an object previously used as an r-value" ); // Our local variable should become invalid
557 Property::Map* mapPtr = value.GetMap();
558 DALI_TEST_CHECK( mapPtr );
559 DALI_TEST_EQUALS( 3u, mapPtr->Count(), TEST_LOCATION );
564 int UtcDaliPropertyValueAssignmentSelfP(void)
566 Property::Value value;
567 Property::Value* self = &value;
569 DALI_TEST_EQUALS( value.GetType(), Property::NONE, TEST_LOCATION );
570 DALI_TEST_CHECK( value.GetMap() == NULL );
571 DALI_TEST_CHECK( value.GetArray() == NULL );
575 int UtcDaliPropertyValueAssignmentOperatorNoneP(void)
577 Property::Value value;
578 value = Property::Value(); // type match
579 DALI_TEST_EQUALS( value.GetType(), Property::NONE, TEST_LOCATION );
580 Property::Value copy( false );
581 copy = value; // type mismatch
582 DALI_TEST_EQUALS( value.GetType(), Property::NONE, TEST_LOCATION );
586 int UtcDaliPropertyValueAssignmentOperatorBoolP(void)
588 Property::Value value;
589 value = Property::Value(true); // type mismatch
590 DALI_TEST_CHECK( true == value.Get<bool>() );
591 Property::Value copy( false );
592 copy = value; // type match
593 DALI_TEST_CHECK( true == copy.Get<bool>() );
597 int UtcDaliPropertyValueAssignmentOperatorIntP(void)
599 Property::Value value;
600 value = Property::Value(10); // type mismatch
601 DALI_TEST_CHECK( 10 == value.Get<int>() );
602 Property::Value copy( 99 );
603 copy = value; // type match
604 DALI_TEST_CHECK( 10 == copy.Get<int>() );
608 int UtcDaliPropertyValueAssignmentOperatorFloatP(void)
610 Property::Value value;
611 value = Property::Value(10.f); // mismatch
612 DALI_TEST_CHECK( Dali::Equals(10.f, value.Get<float>() ) );
613 Property::Value copy(321.f);
614 copy = value; // match
615 DALI_TEST_CHECK( Dali::Equals(10.f, copy.Get<float>() ) );
619 int UtcDaliPropertyValueAssignmentOperatorVector2P(void)
621 Property::Value value;
622 value = Property::Value( Vector2(1,2) ); // mismatch
623 DALI_TEST_CHECK( Vector2(1,2) == value.Get<Vector2>() );
624 Property::Value copy( Property::VECTOR2 );
625 copy = value; // match
626 DALI_TEST_CHECK( Vector2(1,2) == copy.Get<Vector2>() );
630 int UtcDaliPropertyValueAssignmentOperatorVector3P(void)
632 Property::Value value;
633 value = Property::Value( Vector3(1.f,2.f,3.f) ); // mismatch
634 DALI_TEST_CHECK( Vector3(1.f,2.f,3.f) == value.Get<Vector3>() );
635 Property::Value copy( Property::VECTOR3 );
636 copy = value; // match
637 DALI_TEST_CHECK( Vector3(1.f,2.f,3.f) == copy.Get<Vector3>() );
641 int UtcDaliPropertyValueAssignmentOperatorVector4P(void)
643 Property::Value value;
644 value = Property::Value( Vector4(1,2,3,4) ); // mismatch
645 DALI_TEST_CHECK( Vector4(1,2,3,4) == value.Get<Vector4>() );
646 Property::Value copy( Vector4(0,1,2,3) );
647 copy = value; // match
648 DALI_TEST_CHECK( Vector4(1,2,3,4) == copy.Get<Vector4>() );
652 int UtcDaliPropertyValueAssignmentOperatorMatrix3P(void)
654 Property::Value value;
655 value = Property::Value( Matrix3::IDENTITY ); // mismatch
656 DALI_TEST_CHECK( Matrix3::IDENTITY == value.Get<Matrix3>() );
657 Property::Value copy( Property::MATRIX3 );
658 copy = value; // match
659 DALI_TEST_CHECK( Matrix3::IDENTITY == copy.Get<Matrix3>() );
663 int UtcDaliPropertyValueAssignmentOperatorMatrixP(void)
665 Property::Value value;
666 value = Property::Value( Matrix::IDENTITY ); // mismatch
667 DALI_TEST_CHECK( Matrix::IDENTITY == value.Get<Matrix>() );
669 Property::Value copy( foo );
670 copy = value; // match
671 DALI_TEST_CHECK( Matrix::IDENTITY == copy.Get<Matrix>() );
675 int UtcDaliPropertyValueAssignmentOperatorRectP(void)
677 Property::Value value;
678 typedef Dali::Rect<int> Rectangle;
679 value = Property::Value( Rectangle(4,3,2,1) ); // mismatch
680 DALI_TEST_CHECK( Rectangle(4,3,2,1) == value.Get<Rectangle>() );
681 Property::Value copy( Property::RECTANGLE );
682 copy = value; // match
685 DALI_TEST_CHECK( Rectangle(4,3,2,1) == copyRect );
689 int UtcDaliPropertyValueAssignmentOperatorQuaternionP(void)
691 Property::Value value;
692 Quaternion result( Radian( Math::PI_2 ), Vector3::YAXIS );
693 value = Property::Value( result );
695 DALI_TEST_EQUALS( value.Get<Quaternion>(), result, 0.001, TEST_LOCATION );
697 Property::Value copy( Property::ROTATION );
698 copy = value; // match
699 DALI_TEST_EQUALS( copy.Get<Quaternion>(), result, 0.001, TEST_LOCATION );
704 int UtcDaliPropertyValueAssignmentOperatorAngleAxisP(void)
706 Property::Value value;
707 value = Property::Value( AngleAxis( Radian(Math::PI_2), Vector3::XAXIS ) ); // mismatch
708 DALI_TEST_EQUALS( value.Get<AngleAxis>().axis, Vector3::XAXIS, TEST_LOCATION );
709 DALI_TEST_EQUALS( value.Get<AngleAxis>().angle, Radian(Math::PI_2), TEST_LOCATION );
710 Property::Value copy( Property::ROTATION );
711 copy = value; // match
712 DALI_TEST_EQUALS( value.Get<AngleAxis>().axis, copy.Get<AngleAxis>().axis, TEST_LOCATION );
713 DALI_TEST_EQUALS( value.Get<AngleAxis>().angle, copy.Get<AngleAxis>().angle, TEST_LOCATION );
717 int UtcDaliPropertyValueAssignmentOperatorStringP(void)
719 Property::Value value;
720 value = Property::Value("yes"); // mismatch
721 DALI_TEST_CHECK( "yes" == value.Get<std::string>() );
722 Property::Value copy("no");
723 copy = value; // match
724 DALI_TEST_CHECK( "yes" == copy.Get<std::string>() );
728 int UtcDaliPropertyValueAssignmentOperatorArrayP(void)
730 Property::Value value;
731 value = Property::Value(Property::ARRAY); // mismatch
732 value.GetArray()->PushBack(10);
733 DALI_TEST_CHECK( value.GetArray() );
734 Property::Value copy(Property::ARRAY);
735 copy = value; // match
736 Property::Array array;
739 array[0].Get( getItem );
740 DALI_TEST_CHECK( getItem == 10 );
744 int UtcDaliPropertyValueAssignmentOperatorMapP(void)
746 Property::Value value;
747 value = Property::Value(Property::MAP); // mismatch
748 value.GetMap()->Insert("key", "value");
749 Property::Value copy( Property::MAP ); // match
753 DALI_TEST_CHECK( map.GetKey(0) == "key" );
757 int UtcDaliPropertyValueAssignmentOperatorExtentsP(void)
759 Property::Value value;
760 value = Property::Value( Extents( 4, 3, 2, 1 ) ); // mismatch
761 DALI_TEST_CHECK( Extents( 4, 3, 2, 1 ) == value.Get<Extents>() );
762 Property::Value copy( Property::EXTENTS );
763 copy = value; // match
765 copy.Get(copyExtents);
766 DALI_TEST_CHECK( Extents( 4, 3, 2, 1 ) == copyExtents );
770 int UtcDaliPropertyValueMoveAssignmentOperator(void)
772 Property::Value value1( Vector4::ONE );
773 DALI_TEST_EQUALS( Property::VECTOR4, value1.GetType(), TEST_LOCATION );
776 DALI_TEST_EQUALS( true, value1.Get( valueVector ), TEST_LOCATION ); // Able to convert
777 DALI_TEST_EQUALS( valueVector, Vector4::ONE, TEST_LOCATION );
779 Property::Value value2;
780 value2 = std::move( value1 );
781 DALI_TEST_EQUALS( Property::NONE, value1.GetType(), TEST_LOCATION );
782 DALI_TEST_EQUALS( false, value1.Get( valueVector ), TEST_LOCATION ); // Unable to convert, but no crash either
783 DALI_TEST_EQUALS( Property::VECTOR4, value2.GetType(), TEST_LOCATION );
784 DALI_TEST_EQUALS( true, value2.Get( valueVector ), TEST_LOCATION ); // Able to convert
785 DALI_TEST_EQUALS( valueVector, Vector4::ONE, TEST_LOCATION );
787 // Change to another value type
788 value2 = std::move( Property::Value( 1.0f ) );
789 DALI_TEST_EQUALS( false, value2.Get( valueVector ), TEST_LOCATION ); // Should not be able to convert to a Vector4 now
791 DALI_TEST_EQUALS( true, value2.Get( valueFloat ), TEST_LOCATION ); // Should be able to convert to a float now
792 DALI_TEST_EQUALS( valueFloat, 1.0f, TEST_LOCATION );
794 // Ensure self assignment doesn't do anything silly
795 value2 = std::move( value2 );
796 DALI_TEST_EQUALS( true, value2.Get( valueFloat ), TEST_LOCATION );
797 DALI_TEST_EQUALS( valueFloat, 1.0f, TEST_LOCATION );
802 int UtcDaliPropertyValueGetTypeP(void)
804 Property::Value value;
805 DALI_TEST_CHECK( value.GetType() == Property::NONE );
809 int UtcDaliPropertyValueGetBoolP(void)
811 Property::Value value(true);
812 bool boolean( false );
813 DALI_TEST_CHECK( value.Get( boolean ) == true );
814 DALI_TEST_CHECK( value.Get<bool>() == true );
816 DALI_TEST_CHECK( value.Get( string ) == false );
817 value = Property::Value(1.f);
818 DALI_TEST_CHECK( value.Get<float>() == 1.f );
822 int UtcDaliPropertyValueGetBoolN(void)
824 Property::Value value;
825 DALI_TEST_CHECK( value.Get<bool>() == false );
826 bool boolean( false );
827 DALI_TEST_CHECK( value.Get( boolean ) == false );
831 int UtcDaliPropertyValueGetFloatP(void)
833 Property::Value value(1.1f);
835 DALI_TEST_EQUALS( 1.1f, value.Get<float>(), TEST_LOCATION );
836 DALI_TEST_EQUALS( true, value.Get( flow ), TEST_LOCATION );
837 DALI_TEST_EQUALS( 1.1f, flow, TEST_LOCATION );
839 Property::Value intValue(100);
840 DALI_TEST_EQUALS( 100.f, intValue.Get<float>(), TEST_LOCATION );
841 DALI_TEST_EQUALS( true, intValue.Get( flow ), TEST_LOCATION );
842 DALI_TEST_EQUALS( 100.f, flow, TEST_LOCATION );
847 int UtcDaliPropertyValueGetFloatN(void)
849 Property::Value value;
850 float result( 1.0f );
851 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
852 DALI_TEST_EQUALS( 1.0f, result, TEST_LOCATION ); // result is not modified
853 Property::Value value2( "" );
854 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
855 DALI_TEST_EQUALS( 1.0f, result, TEST_LOCATION ); // result is not modified
859 int UtcDaliPropertyValueGetIntP(void)
861 Property::Value value(123);
863 DALI_TEST_EQUALS( 123, value.Get<int>(), TEST_LOCATION );
864 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
865 DALI_TEST_EQUALS( 123, result, TEST_LOCATION );
867 Property::Value floatValue(21.f);
868 DALI_TEST_EQUALS( 21, floatValue.Get<int>(), TEST_LOCATION );
869 DALI_TEST_EQUALS( true, floatValue.Get( result ), TEST_LOCATION );
870 DALI_TEST_EQUALS( 21, result, TEST_LOCATION );
875 int UtcDaliPropertyValueGetIntN(void)
877 Property::Value value;
879 DALI_TEST_EQUALS( 0, value.Get<int>(), TEST_LOCATION );
880 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
881 DALI_TEST_EQUALS( 10, result, TEST_LOCATION ); // result is not modified
882 Property::Value value2("");
883 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
884 DALI_TEST_EQUALS( 10, result, TEST_LOCATION ); // result is not modified
888 int UtcDaliPropertyValueGetRectP(void)
890 Property::Value value( Rect<int>(1,2,3,4) );
891 Rect<int> result(4,3,2,1);
892 DALI_TEST_EQUALS( Rect<int>(1,2,3,4), value.Get< Rect<int> >(), TEST_LOCATION );
893 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
894 DALI_TEST_EQUALS( Rect<int>(1,2,3,4), result, TEST_LOCATION );
898 int UtcDaliPropertyValueGetRectN(void)
900 Property::Value value;
901 Rect<int> result(4,3,2,1);
902 DALI_TEST_EQUALS( Rect<int>(0,0,0,0), value.Get< Rect<int> >(), TEST_LOCATION );
903 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
904 DALI_TEST_EQUALS( Rect<int>(4,3,2,1), result, TEST_LOCATION );
905 Property::Value value2("");
906 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
907 DALI_TEST_EQUALS( Rect<int>(4,3,2,1), result, TEST_LOCATION );
911 int UtcDaliPropertyValueGetVector2P(void)
913 Property::Value value( Vector2(1.0f,2.0f) );
915 DALI_TEST_EQUALS( Vector2(1.0f,2.0f), value.Get< Vector2 >(), TEST_LOCATION );
916 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
917 DALI_TEST_EQUALS( Vector2(1.0f,2.0f), result, TEST_LOCATION );
921 int UtcDaliPropertyValueGetVector2fromVector3P(void)
923 Property::Value value( Vector3(1.f,2.f,3.f) );
925 DALI_TEST_EQUALS( Vector2(1.0f,2.0f), value.Get< Vector2 >(), TEST_LOCATION );
926 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
927 DALI_TEST_EQUALS( Vector2(1.0f,2.0f), result, TEST_LOCATION );
931 int UtcDaliPropertyValueGetVector2fromVector4P(void)
933 Property::Value value( Vector4(1.f,2.f,3.f,4.f) );
935 DALI_TEST_EQUALS( Vector2(1.0f,2.0f), value.Get< Vector2 >(), TEST_LOCATION );
936 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
937 DALI_TEST_EQUALS( Vector2(1.0f,2.0f), result, TEST_LOCATION );
941 int UtcDaliPropertyValueGetVector2N(void)
943 Property::Value value;
945 DALI_TEST_EQUALS( Vector2(0.f,0.f), value.Get< Vector2 >(), TEST_LOCATION );
946 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
947 DALI_TEST_EQUALS( Vector2(), result, TEST_LOCATION );
948 Property::Value value2("");
949 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
950 DALI_TEST_EQUALS( Vector2(), result, TEST_LOCATION );
954 int UtcDaliPropertyValueGetVector3P(void)
956 Property::Value value( Vector3(1.0f,2.0f,-1.f) );
958 DALI_TEST_EQUALS( Vector3(1.0f,2.0f,-1.f), value.Get< Vector3 >(), TEST_LOCATION );
959 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
960 DALI_TEST_EQUALS( Vector3(1.0f,2.0f,-1.f), result, TEST_LOCATION );
964 int UtcDaliPropertyValueGetVector3FromVector2P(void)
966 Property::Value value( Vector2(1.0f,2.0f) );
967 Vector3 result(99.f,88.f,77.f);
968 DALI_TEST_EQUALS( Vector3(1.0f,2.0f,0.f), value.Get< Vector3 >(), TEST_LOCATION );
969 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
970 DALI_TEST_EQUALS( Vector3(1.0f,2.0f,0.f), result, TEST_LOCATION );
974 int UtcDaliPropertyValueGetVector3FromVector4P(void)
976 Property::Value value( Vector4(4.f,3.f,2.f,1.f) );
978 DALI_TEST_EQUALS( Vector3(4.f,3.f,2.f), value.Get< Vector3 >(), TEST_LOCATION );
979 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
980 DALI_TEST_EQUALS( Vector3(4.f,3.f,2.f), result, TEST_LOCATION );
984 int UtcDaliPropertyValueGetVector3N(void)
986 Property::Value value;
988 DALI_TEST_EQUALS( Vector3(0.f,0.f,0.f), value.Get< Vector3 >(), TEST_LOCATION );
989 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
990 DALI_TEST_EQUALS( Vector3(), result, TEST_LOCATION );
991 Property::Value value2("");
992 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
993 DALI_TEST_EQUALS( Vector3(), result, TEST_LOCATION );
997 int UtcDaliPropertyValueGetVector4P(void)
999 Property::Value value( Vector4(1.f,2.f,-1.f,-3.f) );
1001 DALI_TEST_EQUALS( Vector4(1.f,2.f,-1.f,-3.f), value.Get< Vector4 >(), TEST_LOCATION );
1002 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1003 DALI_TEST_EQUALS( Vector4(1.f,2.f,-1.f,-3.f), result, TEST_LOCATION );
1007 int UtcDaliPropertyValueGetVector4FromVector2P(void)
1009 Property::Value value( Vector2(-1.f,-3.f) );
1010 Vector4 result(99.f,88.f,77.f,66.f);
1011 DALI_TEST_EQUALS( Vector4(-1.f,-3.f,0.f,0.f), value.Get< Vector4 >(), TEST_LOCATION );
1012 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1013 DALI_TEST_EQUALS( Vector4(-1.f,-3.f,0.f,0.f), result, TEST_LOCATION );
1017 int UtcDaliPropertyValueGetVector4FromVector3P(void)
1019 Property::Value value( Vector3(1.f,2.f,-1.f) );
1020 Vector4 result(99.f,88.f,77.f,66.f);
1021 DALI_TEST_EQUALS( Vector4(1.f,2.f,-1.f,0.f), value.Get< Vector4 >(), TEST_LOCATION );
1022 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1023 DALI_TEST_EQUALS( Vector4(1.f,2.f,-1.f,0.f), result, TEST_LOCATION );
1027 int UtcDaliPropertyValueGetVector4N(void)
1029 Property::Value value;
1031 DALI_TEST_EQUALS( Vector4(0.f,0.f,0.f,0.f), value.Get< Vector4 >(), TEST_LOCATION );
1032 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
1033 DALI_TEST_EQUALS( Vector4(), result, TEST_LOCATION );
1034 Property::Value value2("");
1035 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
1036 DALI_TEST_EQUALS( Vector4(), result, TEST_LOCATION );
1040 int UtcDaliPropertyValueGetMatrix3P(void)
1042 Property::Value value( Matrix3(1.f,2.f,3.f,4.f,5.f,6.f,7.f,8.f,9.f) );
1044 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 );
1045 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1046 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 );
1050 int UtcDaliPropertyValueGetMatrix3N(void)
1052 Property::Value value;
1053 Matrix3 result(1.f,2.f,3.f,4.f,5.f,6.f,7.f,8.f,9.f);
1054 DALI_TEST_EQUALS( Matrix3(), value.Get< Matrix3 >(), TEST_LOCATION );
1055 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
1056 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 );
1057 Property::Value value2("");
1058 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
1059 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 );
1063 int UtcDaliPropertyValueGetMatrixP(void)
1065 float matrixValues[16] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
1066 Matrix input( matrixValues );
1067 Property::Value value( input );
1069 DALI_TEST_EQUALS( input, value.Get< Matrix >(), TEST_LOCATION );
1070 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1071 DALI_TEST_EQUALS( input, result, TEST_LOCATION );
1075 int UtcDaliPropertyValueGetMatrixN(void)
1077 Property::Value value;
1078 Matrix result( Matrix::IDENTITY );
1079 DALI_TEST_EQUALS( Matrix(), value.Get< Matrix >(), TEST_LOCATION );
1080 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
1081 DALI_TEST_EQUALS( Matrix::IDENTITY, result, TEST_LOCATION );
1083 Property::Value value2("");
1084 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
1085 DALI_TEST_EQUALS( Matrix::IDENTITY, result, TEST_LOCATION );
1089 int UtcDaliPropertyValueGetAngleAxisP(void)
1091 AngleAxis input( Dali::ANGLE_90, Vector3::XAXIS );
1092 Property::Value value( input );
1093 AngleAxis result = value.Get<AngleAxis>();
1094 DALI_TEST_EQUALS( input.angle, result.angle, TEST_LOCATION );
1095 DALI_TEST_EQUALS( input.axis, result.axis, TEST_LOCATION );
1097 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1098 DALI_TEST_EQUALS( input, result, TEST_LOCATION );
1102 int UtcDaliPropertyValueGetAngleAxisN(void)
1104 Property::Value value;
1105 AngleAxis b = value.Get<AngleAxis>();
1107 DALI_TEST_EQUALS( (Radian)0.f, b.angle, TEST_LOCATION );
1108 DALI_TEST_EQUALS( Vector3::ZERO, b.axis, TEST_LOCATION );
1109 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
1110 DALI_TEST_EQUALS( AngleAxis(), result, TEST_LOCATION );
1112 Property::Value value2("");
1113 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
1114 DALI_TEST_EQUALS( AngleAxis(), result, TEST_LOCATION );
1118 int UtcDaliPropertyValueGetQuaternionP(void)
1120 Vector3 axis(1, 1, 0);
1123 Quaternion result( Radian( 1.f ), axis );
1124 Property::Value value( result );
1126 DALI_TEST_EQUALS( result, value.Get< Quaternion >(), TEST_LOCATION );
1128 DALI_TEST_EQUALS( true, value.Get( test2 ), TEST_LOCATION );
1132 int UtcDaliPropertyValueGetQuaternionN(void)
1134 Property::Value value;
1135 Vector3 axis(1, 1, 0);
1137 Quaternion result( Radian( 1.f ), axis );
1138 Quaternion test(result);
1140 DALI_TEST_EQUALS( Quaternion(), value.Get< Quaternion >(), TEST_LOCATION );
1141 DALI_TEST_EQUALS( false, value.Get( test ), TEST_LOCATION );
1142 DALI_TEST_EQUALS( test, result, TEST_LOCATION );
1144 Property::Value value2("");
1145 DALI_TEST_EQUALS( false, value2.Get( test ), TEST_LOCATION );
1146 DALI_TEST_EQUALS( test, result, TEST_LOCATION );
1150 int UtcDaliPropertyValueGetStringP(void)
1152 Property::Value value( std::string("hello") );
1154 DALI_TEST_EQUALS( std::string("hello"), value.Get< std::string >(), TEST_LOCATION );
1155 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1156 DALI_TEST_EQUALS( std::string("hello"), result, TEST_LOCATION );
1158 Property::Value value2( "C hi!" );
1159 DALI_TEST_EQUALS( "C hi!", value2.Get< std::string >(), TEST_LOCATION );
1160 DALI_TEST_EQUALS( true, value2.Get( result ), TEST_LOCATION );
1161 DALI_TEST_EQUALS( "C hi!", result, TEST_LOCATION );
1165 int UtcDaliPropertyValueGetStringN(void)
1167 Property::Value value;
1168 std::string result("doesn't change");
1169 DALI_TEST_EQUALS( std::string(), value.Get< std::string >(), TEST_LOCATION );
1170 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
1171 DALI_TEST_EQUALS( "doesn't change", result, TEST_LOCATION );
1173 Property::Value value2(10);
1174 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
1175 DALI_TEST_EQUALS( "doesn't change", result, TEST_LOCATION );
1177 Property::Value value3((char*)NULL);
1178 DALI_TEST_EQUALS( true, value3.Get( result ), TEST_LOCATION );
1179 DALI_TEST_EQUALS( std::string(), result, TEST_LOCATION );
1183 int UtcDaliPropertyValueGetArrayP(void)
1185 Property::Value value( Property::ARRAY );
1186 DALI_TEST_CHECK( NULL != value.GetArray() );
1187 value.GetArray()->PushBack( Property::Value(1) );
1188 Property::Array got = value.Get<Property::Array>();
1189 DALI_TEST_CHECK( got[0].Get<int>() == 1);
1190 Property::Array result;
1191 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1192 DALI_TEST_CHECK( result[0].Get<int>() == 1);
1196 int UtcDaliPropertyValueGetArrayN(void)
1198 Property::Value value;
1199 DALI_TEST_CHECK( NULL == value.GetArray() );
1200 Property::Array result;
1201 result.PushBack( Property::Value( 10 ) );
1202 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
1203 DALI_TEST_EQUALS( 1u, result.Count(), TEST_LOCATION ); // array is not modified
1205 Property::Value value2("");
1206 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
1207 DALI_TEST_EQUALS( 1u, result.Count(), TEST_LOCATION ); // array is not modified
1211 int UtcDaliPropertyValueGetMapP(void)
1213 Property::Value value(Property::MAP);
1214 DALI_TEST_CHECK( NULL == value.GetArray() );
1215 DALI_TEST_CHECK( NULL != value.GetMap() );
1216 value.GetMap()->Insert("key", Property::Value(1));
1217 Property::Map result = value.Get<Property::Map>();
1218 DALI_TEST_CHECK(result.Find("key")->Get<int>() == 1);
1219 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1220 DALI_TEST_CHECK(result.Find("key")->Get<int>() == 1);
1224 int UtcDaliPropertyValueGetMapN(void)
1226 Property::Value value;
1227 DALI_TEST_CHECK( NULL == value.GetMap() );
1228 DALI_TEST_EQUALS( 0u, value.Get<Property::Map>().Count(), TEST_LOCATION );
1229 Property::Map result;
1230 result.Insert("key", "value" );
1231 DALI_TEST_EQUALS( false, value.Get( result ), TEST_LOCATION );
1232 DALI_TEST_EQUALS( 1u, result.Count(), TEST_LOCATION );
1234 Property::Value value2("");
1235 DALI_TEST_EQUALS( false, value2.Get( result ), TEST_LOCATION );
1236 DALI_TEST_EQUALS( 1u, result.Count(), TEST_LOCATION ); // array is not modified
1240 int UtcDaliPropertyValueGetExtentsP(void)
1242 Property::Value value( Extents( 1u, 2u, 3u, 4u ) );
1243 Extents result( 4u, 3u, 2u, 1u );
1244 DALI_TEST_EQUALS( Extents( 1u, 2u, 3u, 4u ), value.Get<Extents>(), TEST_LOCATION );
1245 DALI_TEST_EQUALS( true, value.Get( result ), TEST_LOCATION );
1246 DALI_TEST_EQUALS( Extents( 1u, 2u, 3u, 4u ), result, TEST_LOCATION );
1250 int UtcDaliPropertyValueOutputStream(void)
1252 TestApplication application;
1253 tet_infoline("Testing Property::Value output stream");
1254 typedef Dali::Rect<int> Rectangle;
1256 Property::Value value(true);
1258 std::ostringstream stream;
1260 DALI_TEST_CHECK( stream.str() == "1" )
1264 Property::Value empty;
1265 std::ostringstream stream;
1267 DALI_TEST_EQUALS( stream.str(), "undefined type", TEST_LOCATION );
1271 Property::Value empty( Property::NONE );
1272 std::ostringstream stream;
1274 DALI_TEST_CHECK( stream.str() == "undefined type" )
1278 value = Property::Value(20.2f);
1279 std::ostringstream stream;
1281 DALI_TEST_CHECK( stream.str() == "20.2" )
1285 value = Property::Value(-25);
1286 std::ostringstream stream;
1288 DALI_TEST_CHECK( stream.str() == "-25" )
1292 value = Property::Value( Vector2(1.f,1.f) );
1293 std::ostringstream stream;
1295 DALI_TEST_CHECK( stream.str() == "[1, 1]" );
1299 value = Property::Value( Vector3(1.f,1.f,1.f) );
1300 std::ostringstream stream;
1302 DALI_TEST_CHECK( stream.str() == "[1, 1, 1]" );
1306 value = Property::Value( Vector4(-4.f,-3.f,-2.f,-1.f) );
1307 std::ostringstream stream;
1309 DALI_TEST_EQUALS( stream.str(), "[-4, -3, -2, -1]", TEST_LOCATION );
1313 value = Property::Value( Matrix3::IDENTITY );
1314 std::ostringstream stream;
1316 DALI_TEST_CHECK( stream.str() == "[ 1, 0, 0, 0, 1, 0, 0, 0, 1 ]" );
1320 value = Property::Value( Matrix::IDENTITY );
1321 std::ostringstream stream;
1323 DALI_TEST_CHECK( stream.str() == "[ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]" );
1327 value = Property::Value( Rectangle(1,2,3,4) );
1328 std::ostringstream stream;
1330 DALI_TEST_CHECK( stream.str() == "[1, 2, 3, 4]" );
1334 value = Property::Value( AngleAxis( Dali::ANGLE_120, Vector3::XAXIS ) );
1335 std::ostringstream stream;
1337 tet_printf("angle axis = %s \n", stream.str().c_str() );
1338 DALI_TEST_EQUALS( stream.str(), "[ Axis: [1, 0, 0], Angle: 120 degrees ]", TEST_LOCATION );
1342 value = Property::Value( std::string( "Foo" ) );
1343 std::ostringstream stream;
1345 DALI_TEST_CHECK( stream.str() == "Foo" );
1350 map.Insert("key", "value");
1351 map.Insert("duration", 10);
1352 map.Insert("color", Vector4(1.0, 0.5, 1.0, 1.0));
1354 value = Property::Value( map );
1355 std::ostringstream stream;
1357 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1358 DALI_TEST_CHECK( !stream.str().compare("Map(3) = {key:value, duration:10, color:[1, 0.5, 1, 1]}"));
1361 Property::Array array;
1365 value = Property::Value( array );
1366 std::ostringstream stream;
1368 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1369 DALI_TEST_CHECK( !stream.str().compare("Array(3) = [0, 2, 3]") );
1375 Property::Array array;
1377 map2.Insert("key", "value");
1378 map2.Insert("duration", 10);
1379 map.Insert("color", Vector4(1.0, 0.5, 1.0, 1.0));
1380 map.Insert("timePeriod", map2);
1381 array.PushBack(Vector2(1, 0));
1382 array.PushBack(Vector2(0, 1));
1383 array.PushBack(Vector2(1, 0));
1384 array.PushBack(Vector2(0, 0.5));
1385 map.Insert("texCoords", array);
1386 value = Property::Value( map );
1388 std::ostringstream stream;
1391 tet_printf("Checking Property::Value is %s", stream.str().c_str());
1393 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]]}"));
1397 value = Property::Value( Extents( 1u, 2u, 3u, 4u ) );
1398 std::ostringstream stream;
1400 DALI_TEST_CHECK( stream.str() == "[1, 2, 3, 4]" );