diff options
author | Richard Linden <none@none> | 2012-12-07 15:20:12 -0800 |
---|---|---|
committer | Richard Linden <none@none> | 2012-12-07 15:20:12 -0800 |
commit | c99886d94389babc78e92bbfa5084fdd785915af (patch) | |
tree | 839ffe3031ca296182743cf7af4d7375e2fb3c78 /indra/llcommon/tests | |
parent | 3745d1254acc386acaadd20016123c9a47b8d10c (diff) |
SH-3406 WIP convert fast timers to lltrace system
improved unit tests for LLUnit
renamed LLUnit to LLUnitImplicit with LLUnit being reserved for
explicit units
Diffstat (limited to 'indra/llcommon/tests')
-rw-r--r-- | indra/llcommon/tests/llunits_test.cpp (renamed from indra/llcommon/tests/llunit_test.cpp) | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/indra/llcommon/tests/llunit_test.cpp b/indra/llcommon/tests/llunits_test.cpp index a7e9c00740..2a941e8229 100644 --- a/indra/llcommon/tests/llunit_test.cpp +++ b/indra/llcommon/tests/llunits_test.cpp @@ -68,7 +68,7 @@ namespace tut ensure(int_quatloos.value() == 42); float_quatloos = 42.1f; - ensure(float_quatloos == 42.1f); + ensure(float_quatloos.value() == 42.1f); int_quatloos = float_quatloos; ensure(int_quatloos.value() == 42); LLUnit<Quatloos, U32> unsigned_int_quatloos(float_quatloos); @@ -153,4 +153,56 @@ namespace tut quatloos -= LLUnit<Latinum, F32>(1.f); ensure(quatloos.value() == 1); } + + // implicit units + template<> template<> + void units_object_t::test<5>() + { + // 0-initialized + LLUnit<Quatloos, F32> quatloos(0); + // initialize implicit unit from explicit + LLUnitImplicit<Quatloos, F32> quatloos_implicit = quatloos + 1; + ensure(quatloos_implicit.value() == 1); + + // assign implicit to explicit, or perform math operations + quatloos = quatloos_implicit; + ensure(quatloos.value() == 1); + quatloos += quatloos_implicit; + ensure(quatloos.value() == 2); + + // math operations on implicits + quatloos_implicit = 1; + ensure(quatloos_implicit == 1); + + quatloos_implicit += 2; + ensure(quatloos_implicit == 3); + + quatloos_implicit *= 2; + ensure(quatloos_implicit == 6); + + quatloos_implicit -= 1; + ensure(quatloos_implicit == 5); + + quatloos_implicit /= 5; + ensure(quatloos_implicit == 1); + + quatloos_implicit = quatloos_implicit + 3 + quatloos_implicit; + ensure(quatloos_implicit == 5); + + quatloos_implicit = 10 - quatloos_implicit - 1; + ensure(quatloos_implicit == 4); + + quatloos_implicit = 2 * quatloos_implicit * 2; + ensure(quatloos_implicit == 16); + + F32 one_half = quatloos_implicit / (quatloos_implicit * 2); + ensure(one_half == 0.5f); + + // implicit conversion to POD + F32 float_val = quatloos_implicit; + ensure(float_val == 16); + + S32 int_val = quatloos_implicit; + ensure(int_val == 16); + } } |