X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali%2Futc-Dali-Vector3.cpp;h=1a2ba64eef864511afe1e2722fe46d5ae7a98134;hb=21ad0307d423d39fd376eafd67fb4963c0f040cc;hp=7c4cc6358fe6dd7e494412d7a964c5d1c4a7d2c0;hpb=7dcb0a38005dd8c6d71e466c1ea0ec4d7d57239f;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/automated-tests/src/dali/utc-Dali-Vector3.cpp b/automated-tests/src/dali/utc-Dali-Vector3.cpp index 7c4cc63..1a2ba64 100644 --- a/automated-tests/src/dali/utc-Dali-Vector3.cpp +++ b/automated-tests/src/dali/utc-Dali-Vector3.cpp @@ -17,9 +17,10 @@ #include #include +#include // isfinite #include -#include +#include #include using namespace Dali; @@ -34,54 +35,62 @@ void utc_dali_vector3_cleanup(void) test_return_value = TET_PASS; } -int UtcDaliVector3Cons(void) +int UtcDaliVector3Constructor01P(void) { + TestApplication application; Vector3 va; - Vector3 vb(Vector2(1.0f, 2.0f)); - Vector3 vc(Vector4(5.63f, 2.31f, 9.83f, 11.23f)); - float array[] = {1.0f, 2.0f, 3.0f}; - Vector3 vd(array); - DALI_TEST_EQUALS(va.x, 0.0f, 0.001f, TEST_LOCATION); DALI_TEST_EQUALS(va.y, 0.0f, 0.001f, TEST_LOCATION); DALI_TEST_EQUALS(va.z, 0.0f, 0.001f, TEST_LOCATION); + END_TEST; +} - DALI_TEST_EQUALS(vb.x, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vb.y, 2.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vb.z, 0.0f, 0.001f, TEST_LOCATION); - - DALI_TEST_EQUALS(vc.x, 5.63f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vc.y, 2.31f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vc.z, 9.83f, 0.001f, TEST_LOCATION); - - DALI_TEST_EQUALS(vd.x, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vd.y, 2.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vd.z, 3.0f, 0.001f, TEST_LOCATION); - - Vector3* vecPtr = new Vector3(1.0f, 2.0f, 3.0f); - DALI_TEST_CHECK( vecPtr != NULL ); - DALI_TEST_EQUALS(vecPtr->x, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vecPtr->y, 2.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vecPtr->z, 3.0f, 0.001f, TEST_LOCATION); +int UtcDaliVector3Constructor02P(void) +{ + TestApplication application; + Vector3 va(1.f, 1.f, 1.f); + DALI_TEST_EQUALS(va.x, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.y, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.z, 1.0f, 0.001f, TEST_LOCATION); + END_TEST; +} - Vector3 vec3; - vec3 = *vecPtr; - delete vecPtr; +int UtcDaliVector3Constructor03P(void) +{ + TestApplication application; + float array [] = {1.f, 1.f, 1.f}; + Vector3 va(array); + DALI_TEST_EQUALS(va.x, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.y, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.z, 1.0f, 0.001f, TEST_LOCATION); + END_TEST; +} - Vector3 vec3b(vd); - DALI_TEST_EQUALS(vec3b.x, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vec3b.y, 2.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vec3b.z, 3.0f, 0.001f, TEST_LOCATION); +int UtcDaliVector3Constructor04P(void) +{ + TestApplication application; + Vector2 vec2(1.f,1.f); + Vector3 va(vec2); + DALI_TEST_EQUALS(va.x, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.y, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.z, 0.0f, 0.001f, TEST_LOCATION); + END_TEST; +} - Vector3 vec3c = vd; - DALI_TEST_EQUALS(vec3c.x, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vec3c.y, 2.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vec3c.z, 3.0f, 0.001f, TEST_LOCATION); +int UtcDaliVector3Constructor05P(void) +{ + TestApplication application; + Vector4 vec4(1.f, 1.f, 1.f, 1.f); + Vector3 va(vec4); + DALI_TEST_EQUALS(va.x, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.y, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.z, 1.0f, 0.001f, TEST_LOCATION); END_TEST; } -int UtcDaliVector3Assign(void) +int UtcDaliVector3Assign01P(void) { + TestApplication application; Vector3 v0; const float array[] = { 1.0f, 2.0f, 3.0f }; v0 = (const float*)array; @@ -89,7 +98,12 @@ int UtcDaliVector3Assign(void) DALI_TEST_EQUALS(v0.x, 1.0f, 0.001f, TEST_LOCATION); DALI_TEST_EQUALS(v0.y, 2.0f, 0.001f, TEST_LOCATION); DALI_TEST_EQUALS(v0.z, 3.0f, 0.001f, TEST_LOCATION); + END_TEST; +} +int UtcDaliVector3Assign02P(void) +{ + TestApplication application; Vector2 vec2_q(1.0f, 2.0f); Vector3 vec3a; vec3a = vec2_q; @@ -97,7 +111,12 @@ int UtcDaliVector3Assign(void) DALI_TEST_EQUALS(vec3a.x, 1.0f, 0.001f, TEST_LOCATION); DALI_TEST_EQUALS(vec3a.y, 2.0f, 0.001f, TEST_LOCATION); DALI_TEST_EQUALS(vec3a.z, 0.0f, 0.001f, TEST_LOCATION); + END_TEST; +} +int UtcDaliVector3Assign03P(void) +{ + TestApplication application; Vector4 vec4_q(4.0f, 3.0f, 2.0f, 1.0f); Vector3 vec3b; vec3b = vec4_q; @@ -108,10 +127,9 @@ int UtcDaliVector3Assign(void) END_TEST; } - -// Add -int UtcDaliVector3Add(void) +int UtcDaliVector3Add01P(void) { + TestApplication application; Vector3 v0(1.0f, 2.0f, 3.0f); Vector3 v1(10.0f, 20.0f, 30.0f); Vector3 r0(11.0f, 22.0f, 33.0f); @@ -119,293 +137,203 @@ int UtcDaliVector3Add(void) Vector3 v2 = v0+v1; DALI_TEST_EQUALS(v2, r0, TEST_LOCATION); - v0 += v1; - DALI_TEST_EQUALS(v0, r0, TEST_LOCATION); END_TEST; } -// Constants -int UtcDaliVector3Constants(void) +int UtcDaliVector3Add02P(void) { - Vector3 va = Vector3::ZERO; - Vector3 vb = Vector3::ONE; - Vector3 vc = Vector3::XAXIS; - - DALI_TEST_EQUALS(va.x, 0.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(va.y, 0.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(va.z, 0.0f, 0.001f, TEST_LOCATION); + TestApplication application; + Vector3 v0(1.0f, 2.0f, 3.0f); + Vector3 v1(10.0f, 20.0f, 30.0f); + Vector3 r0(11.0f, 22.0f, 33.0f); - DALI_TEST_EQUALS(vb.x, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vb.y, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vb.z, 1.0f, 0.001f, TEST_LOCATION); + v0 += v1; + DALI_TEST_EQUALS(v0, r0, TEST_LOCATION); - DALI_TEST_EQUALS(vc.x, 1.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vc.y, 0.0f, 0.001f, TEST_LOCATION); - DALI_TEST_EQUALS(vc.z, 0.0f, 0.001f, TEST_LOCATION); END_TEST; } -// Cross -int UtcDaliVector3Cross(void) +int UtcDaliVector3Subtract01P(void) { - DALI_TEST_EQUALS(Vector3::XAXIS.Cross(Vector3::YAXIS), Vector3::ZAXIS, 0.0001f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::YAXIS.Cross(Vector3::ZAXIS), Vector3::XAXIS, 0.0001f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::ZAXIS.Cross(Vector3::XAXIS), Vector3::YAXIS, 0.0001f, TEST_LOCATION); - - DALI_TEST_EQUALS(Vector3::XAXIS.Cross(Vector3::ZAXIS), -Vector3::YAXIS, 0.0001f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::YAXIS.Cross(Vector3::XAXIS), -Vector3::ZAXIS, 0.0001f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::ZAXIS.Cross(Vector3::YAXIS), -Vector3::XAXIS, 0.0001f, TEST_LOCATION); - - Vector3 v0(2.0f, 3.0f, 4.0f); + TestApplication application; + Vector3 v0(11.0f, 22.0f, 33.0f); Vector3 v1(10.0f, 20.0f, 30.0f); - Vector3 result( (v0.y * v1.z) - (v0.z * v1.y), - (v0.z * v1.x) - (v0.x * v1.z), - (v0.x * v1.y) - (v0.y * v1.x) ); + Vector3 r0(1.0f, 2.0f, 3.0f); + Vector3 v2 = v0-v1; + DALI_TEST_EQUALS(v2, r0, TEST_LOCATION); - DALI_TEST_EQUALS(v0.Cross(v1), result, 0.001f, TEST_LOCATION); END_TEST; } -// Dot -int UtcDaliVector3Dot(void) +int UtcDaliVector3Subtract02P(void) { - DALI_TEST_EQUALS(Vector3::XAXIS.Dot(Vector3::YAXIS), 0.0f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::XAXIS.Dot(Vector3::ZAXIS), 0.0f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::XAXIS.Dot(Vector3::XAXIS), 1.0f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::YAXIS.Dot(Vector3::YAXIS), 1.0f, TEST_LOCATION); - DALI_TEST_EQUALS(Vector3::ZAXIS.Dot(Vector3::ZAXIS), 1.0f, TEST_LOCATION); - - DALI_TEST_EQUALS(Vector3(1.0f, 0.0f, 0.0f).Dot(Vector3(1.0f, 0.0f, 0.0f)), 1.0f, TEST_LOCATION); - - for (float x = 0; x<6.0f; x+=1.0f) - { - Vector3 v0(cosf(x), sinf(x), 0.0f); - Vector3 v1(sinf(x), -cosf(x), 0.0f); - DALI_TEST_EQUALS(v0.Dot(v1), 0.0f, 0.0001f, TEST_LOCATION); - DALI_TEST_EQUALS(v0.Dot(v0), 1.0f, 0.0001f, TEST_LOCATION); - - v0 = Vector3(cosf(x), 0.0f, sinf(x)); - v1 = Vector3(sinf(x), 0.0f, -cosf(x)); - DALI_TEST_EQUALS(v0.Dot(v0), 1.0f, 0.0001f, TEST_LOCATION); - } - - Vector3 v0 = Vector3(12.0f, 7.0f, 9.0f); - v0.Normalize(); + TestApplication application; + Vector3 v0(11.0f, 22.0f, 33.0f); + Vector3 v1(10.0f, 20.0f, 30.0f); + Vector3 r0(1.0f, 2.0f, 3.0f); - Vector3 v1 = v0 * 2.0f; - DALI_TEST_EQUALS(v0.Dot(v1), 2.0f, 0.001f, TEST_LOCATION); + v0 -= v1; + DALI_TEST_EQUALS(v0, r0, TEST_LOCATION); END_TEST; } - -// Equals -int UtcDaliVector3Equals(void) +int UtcDaliVector3Multiply01P(void) { - Vector3 v0(1.0f, 2.0f, 3.0f); - Vector3 v1(1.0f, 2.0f, 3.0f); - - DALI_TEST_CHECK(v0 == v1); - - Vector3 v2 = Vector3(0.0f, 2.0f, 3.0f); - DALI_TEST_CHECK(v0 != v2); - - v2 = Vector3(1.0f, 0.0f, 3.0f); - DALI_TEST_CHECK(v0 != v2); - - v2 = Vector3(1.0f, 2.0f, 0.0f); - DALI_TEST_CHECK(v0 != v2); + TestApplication application; + Vector3 v0(2.0f, 3.0f, 4.0f); + Vector3 v1(10.0f, 20.0f, 30.0f); + Vector3 r0(20.0f, 60.0f, 120.0f); - v2 = Vector3(11.0f, 22.0f, 33.0f); - DALI_TEST_CHECK(v0 != v2); + Vector3 v2 = v0 * v1; + DALI_TEST_EQUALS(v2, r0, TEST_LOCATION); END_TEST; } - -// Length -int UtcDaliVector3Length(void) +int UtcDaliVector3Multiply02P(void) { - Vector3 v(1.0f, 2.0f, 3.0f); - DALI_TEST_EQUALS(v.Length(), sqrtf(v.x*v.x + v.y*v.y + v.z*v.z), 0.001f, TEST_LOCATION); - - Vector3 v1(0.0f, 0.0f, 0.0f); - DALI_TEST_EQUALS(v1.Length(), 0.0f, TEST_LOCATION); + TestApplication application; + Vector3 v0(2.0f, 3.0f, 4.0f); + Vector3 r0(20.0f, 30.0f, 40.0f); + Vector3 v2 = v0 * 10.f; + DALI_TEST_EQUALS(v2, r0, 0.001, TEST_LOCATION); END_TEST; } -// Length squared -int UtcDaliVector3LengthSquared(void) +int UtcDaliVector3Multiply03P(void) { - Vector3 v(1.0f, 2.0f, 3.0f); - DALI_TEST_EQUALS(v.LengthSquared(), v.x*v.x + v.y*v.y + v.z*v.z, 0.001f, TEST_LOCATION); - - Vector3 v1(0.0f, 0.0f, 0.0f); - DALI_TEST_EQUALS(v1.LengthSquared(), 0.0f, TEST_LOCATION); + TestApplication application; + Vector3 v0(2.0f, 3.0f, 4.0f); + Vector3 v1(10.0f, 20.0f, 30.0f); + Vector3 r0(20.0f, 60.0f, 120.0f); + v0 *= v1; + DALI_TEST_EQUALS(v0, r0, 0.001, TEST_LOCATION); END_TEST; } -// Max -int UtcDaliVector3Max(void) +int UtcDaliVector3Multiply04P(void) { - Vector3 v0(2.0f, 1.0f, 3.0f); - Vector3 v1(1.0f, 2.0f, 3.0f); - - DALI_TEST_EQUALS(Max(v0, v1), Vector3(2.0f, 2.0f, 3.0f), 0.01f, TEST_LOCATION); + TestApplication application; + Vector3 v0(2.0f, 3.0f, 4.0f); + Vector3 r0(20.0f, 30.0f, 40.0f); + v0 *= 10.f; + DALI_TEST_EQUALS(v0, r0, TEST_LOCATION); END_TEST; } -// Min -int UtcDaliVector3Min(void) +int UtcDaliVector3Multiply05P(void) { - Vector3 v0(2.0f, 2.0f, 1.0f); - Vector3 v1(1.0f, 1.0f, 2.0f); - - DALI_TEST_EQUALS(Min(v0, v1), Vector3(1.0f, 1.0f, 1.0f), 0.01f, TEST_LOCATION); + TestApplication application; + Vector3 vec3(Vector3::YAXIS); + Quaternion rotation(Radian(Math::PI_2), Vector3::ZAXIS); + Vector3 result(-Vector3::XAXIS); + vec3 *= rotation; + DALI_TEST_EQUALS( vec3, result, 0.001, TEST_LOCATION ); END_TEST; } -int UtcDaliVector3Clamp(void) +int UtcDaliVector3Divide01P(void) { - tet_infoline("Testing Dali::Vector3::Clamp()"); + TestApplication application; + Vector3 v0(1.0f, 1.0f, 1.0f); + Vector3 v1(2.0f, 3.0f, 5.0f); + Vector3 v2(4.0f, 9.0f, 25.0f); - Vector3 v0( 2.0f, 1.0f, 0.0f ); - Vector3 v1( -1.0f, 2.0f, 1.0f ); + DALI_TEST_EQUALS( v0/v0, v0, TEST_LOCATION); + DALI_TEST_EQUALS( v1/v0, v1, TEST_LOCATION); + DALI_TEST_EQUALS( v1/v1, v0, TEST_LOCATION); + DALI_TEST_EQUALS( v2/v1, v1, TEST_LOCATION); - DALI_TEST_EQUALS( Clamp( v0, 0.9f, 1.1f ), Vector3(1.1f, 1.0f, 0.9f), 0.01f, TEST_LOCATION ); - DALI_TEST_EQUALS( Clamp( v1, 1.0f, 1.0f ), Vector3(1.0f, 1.0f, 1.0f), 0.01f, TEST_LOCATION ); END_TEST; } -int UtcDaliVector3ClampVector3(void) +int UtcDaliVector3Divide02P(void) { - tet_infoline("Testing Dali::Vector3::Clamp( const Vector3& v, const Vector3& min, const Vector3& max )"); - - Vector3 v0(2.0f, 0.8f, 0.0f); - Vector3 v1(-1.0f, 2.0f, 10.0f); - Vector3 v2(10.0f, 5.0f, 0.0f); - Vector3 v3(8.0f, 10.0f, 5.0f); - Vector3 v4(4.9f, 5.1f, 10.0f); - Vector3 min(1.0f, 4.0f, 1.5f); - Vector3 max(9.0f, 6.0f, 8.0f); - - v0.Clamp( min, max ); - v1.Clamp( min, max ); - v2.Clamp( min, max ); - v3.Clamp( min, max ); - v4.Clamp( min, max ); - - DALI_TEST_EQUALS( v0, Vector3(2.0f, 4.0f, 1.5f), 0.01f, TEST_LOCATION ); - DALI_TEST_EQUALS( v1, Vector3(1.0f, 4.0f, 8.0f), 0.01f, TEST_LOCATION ); - DALI_TEST_EQUALS( v2, Vector3(9.0f, 5.0f, 1.5f), 0.01f, TEST_LOCATION ); - DALI_TEST_EQUALS( v3, Vector3(8.0f, 6.0f, 5.0f), 0.01f, TEST_LOCATION ); - DALI_TEST_EQUALS( v4, Vector3(4.9f, 5.1f, 8.0f), 0.01f, TEST_LOCATION ); + TestApplication application; + Vector3 v0(3.0f, 6.0f, 9.0f); + Vector3 v1(1.0f, 2.0f, 3.0f); + Vector3 r(3.0f, 3.0f, 3.0f); + Vector3 v2 = v0 / v1; + DALI_TEST_EQUALS(v2, r, TEST_LOCATION); END_TEST; } -// Multiply -int UtcDaliVector3Multiply(void) +int UtcDaliVector3Divide03P(void) { - Vector3 v0(2.0f, 3.0f, 4.0f); - Vector3 v1(10.0f, 20.0f, 30.0f); - Vector3 r0(20.0f, 60.0f, 120.0f); - - Vector3 v2 = v0 * v1; - DALI_TEST_EQUALS(v2, r0, TEST_LOCATION); - - v0 *= v1; - DALI_TEST_EQUALS(v0, r0, TEST_LOCATION); + TestApplication application; + Vector3 v0(3.0f, 6.0f, 9.0f); + Vector3 v1(1.0f, 2.0f, 3.0f); + Vector3 v2 = v0 / 3.f; + DALI_TEST_EQUALS(v2, v1, TEST_LOCATION); END_TEST; } - -// Divide -int UtcDaliVector3Divide(void) +int UtcDaliVector3Divide04P(void) { - Vector3 v0(1.0f, 1.0f, 1.0f); - Vector3 v1(2.0f, 3.0f, 5.0f); - Vector3 v2(4.0f, 9.0f, 25.0f); - - DALI_TEST_EQUALS( v0/v0, v0, TEST_LOCATION); - DALI_TEST_EQUALS( v1/v0, v1, TEST_LOCATION); - DALI_TEST_EQUALS( v1/v1, v0, TEST_LOCATION); - DALI_TEST_EQUALS( v2/v1, v1, TEST_LOCATION); - + TestApplication application; + Vector3 v0(3.0f, 6.0f, 9.0f); + Vector3 v1(1.0f, 1.0f, 1.0f); Vector3 v4(v0); v4 /= v0; - DALI_TEST_EQUALS(v4, v0, TEST_LOCATION); - - Vector3 v5(v1); - v5 /= v0; - DALI_TEST_EQUALS(v5, v1, TEST_LOCATION); - - Vector3 v6(v1); - v6 /= v6; - DALI_TEST_EQUALS(v6, v0, TEST_LOCATION); - - v2 /= v1; - DALI_TEST_EQUALS(v2, v1, TEST_LOCATION); - + DALI_TEST_EQUALS(v4, v1, TEST_LOCATION); END_TEST; } -int UtcDaliVector3Scale(void) +int UtcDaliVector3Divide05P(void) { - Vector3 v0(2.0f, 4.0f, 8.0f); - const Vector3 r0(20.0f, 40.0f, 80.0f); - const Vector3 r1(10.0f, 20.0f, 40.0f); - const Vector3 r2( 1.0f, 2.0f, 4.0f); - const Vector3 r3(2.0f, 4.0f, 8.0f); - - Vector3 v2 = v0 * 10.0f; - DALI_TEST_EQUALS(v2, r0, TEST_LOCATION); + TestApplication application; + Vector3 v0(3.0f, 6.0f, 9.0f); + Vector3 v1(1.0f, 2.0f, 3.0f); + Vector3 v4(v0); + v4 /= 3.f; + DALI_TEST_EQUALS(v4, v1, TEST_LOCATION); + END_TEST; +} - v0 *= 5.0f; - DALI_TEST_EQUALS(v0, r1, TEST_LOCATION); - v2 = r0 / 10.0f; - DALI_TEST_EQUALS(v2, r3, TEST_LOCATION); +int UtcDaliVector3NegateP(void) +{ + TestApplication application; + Vector3 v1(10.0f, 20.0f, 30.f); + Vector3 r0(-10.0f, -20.0f, -30.f); - v2 = r1; - v2 /= 10.0f; - DALI_TEST_EQUALS(v2, r2, TEST_LOCATION); + Vector3 v2 = -v1; + DALI_TEST_EQUALS(v2, r0, TEST_LOCATION); END_TEST; } - - -// Normalize -int UtcDaliVector3Normalize(void) +int UtcDaliVector3EqualsP(void) { - for (float f=0.0f; f<6.0f; f+=1.0f) - { - Vector3 v(cosf(f)*10.0f, cosf(f+1.0f)*10.0f, cosf(f+2.0f)*10.0f); - v.Normalize(); - DALI_TEST_EQUALS(v.LengthSquared(), 1.0f, 0.001f, TEST_LOCATION); - } + TestApplication application; + Vector3 v0(1.0f, 2.0f, 3.0f); + Vector3 v1(1.0f, 2.0f, 3.0f); - Vector3 v(0.0f, 0.0f, 0.0f); - v.Normalize(); - DALI_TEST_EQUALS(v.LengthSquared(), 0.0f, 0.00001f, TEST_LOCATION); + DALI_TEST_CHECK(v0 == v1); END_TEST; } -// Subtract -int UtcDaliVector3Subtract(void) +int UtcDaliVector3NotEqualsP(void) { - Vector3 v0(11.0f, 22.0f, 33.0f); - Vector3 v1(10.0f, 20.0f, 30.0f); - Vector3 r0(1.0f, 2.0f, 3.0f); + TestApplication application; + Vector3 v0(1.0f, 2.0f, 3.0f); + Vector3 v1(1.0f, 2.0f, 3.0f); + Vector3 v2 = Vector3(0.0f, 2.0f, 3.0f); + DALI_TEST_CHECK(v0 != v2); - Vector3 v2 = v0-v1; - DALI_TEST_EQUALS(v2, r0, TEST_LOCATION); + v2 = Vector3(1.0f, 0.0f, 3.0f); + DALI_TEST_CHECK(v0 != v2); - v0 -= v1; - DALI_TEST_EQUALS(v0, r0, TEST_LOCATION); + v2 = Vector3(1.0f, 2.0f, 0.0f); + DALI_TEST_CHECK(v0 != v2); + + v2 = Vector3(11.0f, 22.0f, 33.0f); + DALI_TEST_CHECK(v0 != v2); END_TEST; } -int UtcDaliVector3OperatorSubscript(void) +int UtcDaliVector3OperatorSubscriptP(void) { + TestApplication application; Vector3 testVector(1.0f, 2.0f, 3.0f); // read array subscripts @@ -430,6 +358,13 @@ int UtcDaliVector3OperatorSubscript(void) DALI_TEST_EQUALS( testVector[0], 7.0f, TEST_LOCATION ); DALI_TEST_EQUALS( testVector[1], 8.0f, TEST_LOCATION ); DALI_TEST_EQUALS( testVector[2], 9.0f, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliVector3ConstOperatorSubscriptP(void) +{ + TestApplication application; + Vector3 testVector(1.0f, 2.0f, 3.0f); // write struct members/read array subscripts const Vector3 testVector2(1.0f, 2.0f, 3.0f); @@ -444,58 +379,150 @@ int UtcDaliVector3OperatorSubscript(void) try { float& w = testVector[4]; - if(w==0.0f); + (void)w; // Suppress unused variable warning tet_result(TET_FAIL); } catch (Dali::DaliException& e) { - tet_printf("Assertion %s failed at %s\n", e.mCondition.c_str(), e.mLocation.c_str()); + DALI_TEST_PRINT_ASSERT( e ); DALI_TEST_ASSERT( e, "index < 3", TEST_LOCATION ); } try { const float& w = testVector2[4]; - if(w==0.0f); + (void)w; // Suppress unused variable warning tet_result(TET_FAIL); } catch (Dali::DaliException& e) { - tet_printf("Assertion %s failed at %s\n", e.mCondition.c_str(), e.mLocation.c_str()); + DALI_TEST_PRINT_ASSERT( e ); DALI_TEST_ASSERT(e, "index < 3", TEST_LOCATION); } END_TEST; } -int UtcDaliVector3OStreamOperator(void) +int UtcDaliVector3DotP(void) { - std::ostringstream oss; + TestApplication application; + DALI_TEST_EQUALS(Vector3::XAXIS.Dot(Vector3::YAXIS), 0.0f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::XAXIS.Dot(Vector3::ZAXIS), 0.0f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::XAXIS.Dot(Vector3::XAXIS), 1.0f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::YAXIS.Dot(Vector3::YAXIS), 1.0f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::ZAXIS.Dot(Vector3::ZAXIS), 1.0f, TEST_LOCATION); - Vector3 vector(1, 2, 3); + DALI_TEST_EQUALS(Vector3(1.0f, 0.0f, 0.0f).Dot(Vector3(1.0f, 0.0f, 0.0f)), 1.0f, TEST_LOCATION); - oss << vector; + for (float x = 0; x<6.0f; x+=1.0f) + { + Vector3 v0(cosf(x), sinf(x), 0.0f); + Vector3 v1(sinf(x), -cosf(x), 0.0f); + DALI_TEST_EQUALS(v0.Dot(v1), 0.0f, 0.0001f, TEST_LOCATION); + DALI_TEST_EQUALS(v0.Dot(v0), 1.0f, 0.0001f, TEST_LOCATION); - std::string expectedOutput = "[1, 2, 3]"; + v0 = Vector3(cosf(x), 0.0f, sinf(x)); + v1 = Vector3(sinf(x), 0.0f, -cosf(x)); + DALI_TEST_EQUALS(v0.Dot(v0), 1.0f, 0.0001f, TEST_LOCATION); + } - DALI_TEST_EQUALS( oss.str(), expectedOutput, TEST_LOCATION); + Vector3 v0 = Vector3(12.0f, 7.0f, 9.0f); + v0.Normalize(); + + Vector3 v1 = v0 * 2.0f; + DALI_TEST_EQUALS(v0.Dot(v1), 2.0f, 0.001f, TEST_LOCATION); END_TEST; } -int UtcDaliVector3Rotate(void) +int UtcDaliVector3CrossP(void) { TestApplication application; + DALI_TEST_EQUALS(Vector3::XAXIS.Cross(Vector3::YAXIS), Vector3::ZAXIS, 0.0001f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::YAXIS.Cross(Vector3::ZAXIS), Vector3::XAXIS, 0.0001f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::ZAXIS.Cross(Vector3::XAXIS), Vector3::YAXIS, 0.0001f, TEST_LOCATION); - Vector3 vec3(Vector3::YAXIS); - Quaternion rotation(Math::PI_2, Vector3::ZAXIS); - Vector3 result(-Vector3::XAXIS); - vec3 *= rotation; - DALI_TEST_EQUALS( vec3, result, 0.001, TEST_LOCATION ); + DALI_TEST_EQUALS(Vector3::XAXIS.Cross(Vector3::ZAXIS), -Vector3::YAXIS, 0.0001f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::YAXIS.Cross(Vector3::XAXIS), -Vector3::ZAXIS, 0.0001f, TEST_LOCATION); + DALI_TEST_EQUALS(Vector3::ZAXIS.Cross(Vector3::YAXIS), -Vector3::XAXIS, 0.0001f, TEST_LOCATION); + + Vector3 v0(2.0f, 3.0f, 4.0f); + Vector3 v1(10.0f, 20.0f, 30.0f); + Vector3 result( (v0.y * v1.z) - (v0.z * v1.y), + (v0.z * v1.x) - (v0.x * v1.z), + (v0.x * v1.y) - (v0.y * v1.x) ); + + + DALI_TEST_EQUALS(v0.Cross(v1), result, 0.001f, TEST_LOCATION); + END_TEST; +} + +int UtcDaliVector3LengthP(void) +{ + TestApplication application; + Vector3 v(1.0f, 2.0f, 3.0f); + DALI_TEST_EQUALS(v.Length(), sqrtf(v.x*v.x + v.y*v.y + v.z*v.z), 0.001f, TEST_LOCATION); + + Vector3 v1(0.0f, 0.0f, 0.0f); + DALI_TEST_EQUALS(v1.Length(), 0.0f, TEST_LOCATION); END_TEST; } -int UtcDaliVector3AsFloat(void) +int UtcDaliVector3LengthSquaredP(void) { + TestApplication application; + Vector3 v(1.0f, 2.0f, 3.0f); + DALI_TEST_EQUALS(v.LengthSquared(), v.x*v.x + v.y*v.y + v.z*v.z, 0.001f, TEST_LOCATION); + + Vector3 v1(0.0f, 0.0f, 0.0f); + DALI_TEST_EQUALS(v1.LengthSquared(), 0.0f, TEST_LOCATION); + END_TEST; +} + +int UtcDaliVector3NormalizeP(void) +{ + TestApplication application; + for (float f=0.0f; f<6.0f; f+=1.0f) + { + Vector3 v(cosf(f)*10.0f, cosf(f+1.0f)*10.0f, cosf(f+2.0f)*10.0f); + v.Normalize(); + DALI_TEST_EQUALS(v.LengthSquared(), 1.0f, 0.001f, TEST_LOCATION); + } + + Vector3 v(0.0f, 0.0f, 0.0f); + v.Normalize(); + DALI_TEST_EQUALS(v.LengthSquared(), 0.0f, 0.00001f, TEST_LOCATION); + END_TEST; +} + +int UtcDaliVector3ClampVector3P(void) +{ + TestApplication application; + + Vector3 v0(2.0f, 0.8f, 0.0f); + Vector3 v1(-1.0f, 2.0f, 10.0f); + Vector3 v2(10.0f, 5.0f, 0.0f); + Vector3 v3(8.0f, 10.0f, 5.0f); + Vector3 v4(4.9f, 5.1f, 10.0f); + Vector3 min(1.0f, 4.0f, 1.5f); + Vector3 max(9.0f, 6.0f, 8.0f); + + v0.Clamp( min, max ); + v1.Clamp( min, max ); + v2.Clamp( min, max ); + v3.Clamp( min, max ); + v4.Clamp( min, max ); + + DALI_TEST_EQUALS( v0, Vector3(2.0f, 4.0f, 1.5f), 0.01f, TEST_LOCATION ); + DALI_TEST_EQUALS( v1, Vector3(1.0f, 4.0f, 8.0f), 0.01f, TEST_LOCATION ); + DALI_TEST_EQUALS( v2, Vector3(9.0f, 5.0f, 1.5f), 0.01f, TEST_LOCATION ); + DALI_TEST_EQUALS( v3, Vector3(8.0f, 6.0f, 5.0f), 0.01f, TEST_LOCATION ); + DALI_TEST_EQUALS( v4, Vector3(4.9f, 5.1f, 8.0f), 0.01f, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliVector3AsFloatP(void) +{ + TestApplication application; float values[] = {0.0f, 1.0f, 2.0f}; Vector3 v0(values); @@ -504,6 +531,15 @@ int UtcDaliVector3AsFloat(void) DALI_TEST_EQUALS(v0.AsFloat()[i], values[i], TEST_LOCATION); } + END_TEST; +} + +int UtcDaliVector3ConstAsFloatP(void) +{ + TestApplication application; + float values[] = {0.0f, 1.0f, 2.0f}; + Vector3 v0(values); + const Vector3 v1(values); for (int i=0;i<3;++i) { @@ -512,91 +548,113 @@ int UtcDaliVector3AsFloat(void) END_TEST; } -int UtcDaliVector3AsVectorXY(void) +int UtcDaliVector3ConstAsVectorXYP(void) { + TestApplication application; + float values[] = {0.0f, 1.0f, 2.0f}; + const Vector3 v0(values); + DALI_TEST_EQUALS(v0.GetVectorXY().x, values[0], TEST_LOCATION); + DALI_TEST_EQUALS(v0.GetVectorXY().y, values[1], TEST_LOCATION); + END_TEST; +} + +int UtcDaliVector3AsVectorXYP(void) +{ + TestApplication application; float values[] = {0.0f, 1.0f, 2.0f}; Vector3 v0(values); - const Vector3 v1(5.0f, 10.0f, 15.0f); - // X = 0.0 - // Y = 1.0 - // Z = 2.0 DALI_TEST_EQUALS(v0.GetVectorXY().x, values[0], TEST_LOCATION); DALI_TEST_EQUALS(v0.GetVectorXY().y, values[1], TEST_LOCATION); + END_TEST; +} - v0.GetVectorXY() = v1.GetVectorYZ(); - // X = y - // Y = z - // Z = 2.0 - DALI_TEST_EQUALS(v0.GetVectorXY().x, v1.y, TEST_LOCATION); - DALI_TEST_EQUALS(v0.GetVectorXY().y, v1.z, TEST_LOCATION); - DALI_TEST_EQUALS(v0.z, values[2], TEST_LOCATION); +int UtcDaliVector3ConstAsVectorXZP(void) +{ + TestApplication application; + float values[] = {0.0f, 1.0f, 2.0f}; + const Vector3 v0(values); - v0.GetVectorYZ() = v1.GetVectorXY(); - // X = y - // Y = x - // Z = y - DALI_TEST_EQUALS(v0.x, v1.y, TEST_LOCATION); - DALI_TEST_EQUALS(v0.y, v1.x, TEST_LOCATION); - DALI_TEST_EQUALS(v0.z, v1.y, TEST_LOCATION); + DALI_TEST_EQUALS(v0.GetVectorYZ().x, values[1], TEST_LOCATION); + DALI_TEST_EQUALS(v0.GetVectorYZ().y, values[2], TEST_LOCATION); END_TEST; } - -int UtcDaliVector3FitKeepAspectRatio(void) +int UtcDaliVector3AsVectorXZP(void) { TestApplication application; - Vector3 target(10.0f, 20.0f, 30.0f); - Vector3 source1(1.0f, 2.0f, 3.0f); - Vector3 source2(1.0f, 1.0f, 1.0f); + float values[] = {0.0f, 1.0f, 2.0f}; + Vector3 v0(values); - DALI_TEST_EQUALS( FitKeepAspectRatio( target, target ), Vector3(1.0f, 1.0f, 1.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FitKeepAspectRatio( target, source1 ), Vector3(10.0f, 10.0f, 10.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FitKeepAspectRatio( target, source2 ), Vector3(10.0f, 10.0f, 10.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FitKeepAspectRatio( source2, target ), Vector3(0.0333f, 0.0333f, 0.0333f), 0.001, TEST_LOCATION ); + DALI_TEST_EQUALS(v0.GetVectorYZ().x, values[1], TEST_LOCATION); + DALI_TEST_EQUALS(v0.GetVectorYZ().y, values[2], TEST_LOCATION); END_TEST; } -int UtcDaliVector3FillKeepAspectRatio(void) +int UtcDaliVector3OStreamOperatorP(void) { TestApplication application; - Vector3 target(10.0f, 20.0f, 30.0f); - Vector3 source1(1.0f, 2.0f, 3.0f); - Vector3 source2(1.0f, 1.0f, 1.0f); + std::ostringstream oss; + + Vector3 vector(1, 2, 3); + + oss << vector; - DALI_TEST_EQUALS( FillKeepAspectRatio( target, target ), Vector3(1.0f, 1.0f, 1.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FillKeepAspectRatio( target, source1 ), Vector3(10.0f, 10.0f, 10.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FillKeepAspectRatio( target, source2 ), Vector3(30.0f, 30.0f, 30.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FillKeepAspectRatio( source2, target ), Vector3(0.1f, 0.1f, 0.1f), 0.001, TEST_LOCATION ); + std::string expectedOutput = "[1, 2, 3]"; + DALI_TEST_EQUALS( oss.str(), expectedOutput, TEST_LOCATION); END_TEST; } -int UtcDaliVector3FillXYKeepAspectRatio(void) +int UtcDaliVector3MinP(void) { TestApplication application; - Vector3 target(10.0f, 20.0f, 30.0f); - Vector3 source1(1.0f, 2.0f, 3.0f); - Vector3 source2(1.0f, 1.0f, 1.0f); + Vector3 v0(2.0f, 2.0f, 1.0f); + Vector3 v1(1.0f, 1.0f, 2.0f); - DALI_TEST_EQUALS( FillXYKeepAspectRatio( target, target ), Vector3(1.0f, 1.0f, 1.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FillXYKeepAspectRatio( target, source1 ), Vector3(10.0f, 10.0f, 10.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FillXYKeepAspectRatio( target, source2 ), Vector3(20.0f, 20.0f, 20.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( FillXYKeepAspectRatio( source2, target ), Vector3(0.1f, 0.1f, 0.1f), 0.001, TEST_LOCATION ); + DALI_TEST_EQUALS(Min(v0, v1), Vector3(1.0f, 1.0f, 1.0f), 0.01f, TEST_LOCATION); + END_TEST; +} +int UtcDaliVector3MaxP(void) +{ + TestApplication application; + Vector3 v0(2.0f, 1.0f, 3.0f); + Vector3 v1(1.0f, 2.0f, 3.0f); + + DALI_TEST_EQUALS(Max(v0, v1), Vector3(2.0f, 2.0f, 3.0f), 0.01f, TEST_LOCATION); END_TEST; } -int UtcDaliVector3ShrinkInsideKeepAspectRatio(void) +int UtcDaliVector3ClampP(void) { TestApplication application; - Vector3 target(1.0f, 2.0f, 3.0f); - Vector3 source1(10.0f, 20.0f, 30.0f); - Vector3 source2(10.0f, 10.0f, 10.0f); + Vector3 v0( 2.0f, 1.0f, 0.0f ); + Vector3 v1( -1.0f, 2.0f, 1.0f ); - DALI_TEST_EQUALS( ShrinkInsideKeepAspectRatio( target, target ), Vector3(1.0f, 1.0f, 1.0f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( ShrinkInsideKeepAspectRatio( target, source1 ), Vector3(0.1f, 0.1f, 0.1f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( ShrinkInsideKeepAspectRatio( target, source2 ), Vector3(0.1f, 0.1f, 0.1f), 0.001, TEST_LOCATION ); - DALI_TEST_EQUALS( ShrinkInsideKeepAspectRatio( source2, target ), Vector3::ONE, 0.001, TEST_LOCATION ); + DALI_TEST_EQUALS( Clamp( v0, 0.9f, 1.1f ), Vector3(1.1f, 1.0f, 0.9f), 0.01f, TEST_LOCATION ); + DALI_TEST_EQUALS( Clamp( v1, 1.0f, 1.0f ), Vector3(1.0f, 1.0f, 1.0f), 0.01f, TEST_LOCATION ); END_TEST; } + +int UtcDaliVector3ConstantsP(void) +{ + TestApplication application; + Vector3 va = Vector3::ZERO; + Vector3 vb = Vector3::ONE; + Vector3 vc = Vector3::XAXIS; + + DALI_TEST_EQUALS(va.x, 0.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.y, 0.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(va.z, 0.0f, 0.001f, TEST_LOCATION); + + DALI_TEST_EQUALS(vb.x, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(vb.y, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(vb.z, 1.0f, 0.001f, TEST_LOCATION); + + DALI_TEST_EQUALS(vc.x, 1.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(vc.y, 0.0f, 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(vc.z, 0.0f, 0.001f, TEST_LOCATION); + END_TEST; +} +