| @@ -1 +1 @@ | |||
| Subproject commit e0730821501436dee4056a4a17f7e312ac9df249 | |||
| Subproject commit cffee479d3e09c5507db24f1467beb858f08f1dc | |||
| @@ -27,16 +27,14 @@ endif | |||
| endif | |||
| test_base_SOURCES = test-common.cpp \ | |||
| base/avl_tree.cpp base/array.cpp base/enum.cpp base/map.cpp \ | |||
| base/string.cpp base/types.cpp | |||
| base/avl_tree.cpp base/array.cpp base/enum.cpp base/map.cpp base/array2d.cpp base/array3d.cpp \ | |||
| base/narray.cpp base/string.cpp base/types.cpp | |||
| test_base_DEPENDENCIES = @LOL_DEPS@ | |||
| test_math_SOURCES = test-common.cpp \ | |||
| math/array2d.cpp math/array3d.cpp math/narray.cpp math/box.cpp \ | |||
| math/cmplx.cpp math/half.cpp math/matrix.cpp math/quat.cpp \ | |||
| math/rand.cpp math/real.cpp math/rotation.cpp math/trig.cpp \ | |||
| math/vector.cpp math/polynomial.cpp math/noise/simplex.cpp \ | |||
| math/bigint.cpp math/sqt.cpp math/numbers.cpp | |||
| math/box.cpp math/cmplx.cpp math/half.cpp math/matrix.cpp math/quat.cpp math/rand.cpp \ | |||
| math/real.cpp math/rotation.cpp math/trig.cpp math/vector.cpp math/polynomial.cpp \ | |||
| math/noise/simplex.cpp math/bigint.cpp math/sqt.cpp math/numbers.cpp | |||
| test_math_DEPENDENCIES = @LOL_DEPS@ | |||
| test_sys_SOURCES = test-common.cpp \ | |||
| @@ -63,6 +63,49 @@ lolunit_declare_fixture(array2d_test) | |||
| lolunit_assert_equal(a(2, 1), 5); | |||
| } | |||
| lolunit_declare_test(array2d_resize) | |||
| { | |||
| array2d<int> a; | |||
| array2d<int> b(11, 12); | |||
| array2d<int> c(ivec2(11, 12)); | |||
| a.resize(11, 12); | |||
| b.resize(ivec2(10, 10)); | |||
| c.clear(); | |||
| lolunit_assert_equal(a.size(), 11 * 12); | |||
| lolunit_assert_equal(a.bytes(), 11 * 12 * sizeof(int)); | |||
| lolunit_assert_equal(a.sizes()[0], 11); | |||
| lolunit_assert_equal(a.sizes()[1], 12); | |||
| } | |||
| lolunit_declare_test(array2d_data) | |||
| { | |||
| array2d<int> a(3, 5); | |||
| auto const &d = a; | |||
| lolunit_assert_equal(a.data(), d.data()); | |||
| a[0] = 12; | |||
| lolunit_assert_equal(a[0], d[0]); | |||
| lolunit_assert_equal(a(0, 0), d(0, 0)); | |||
| lolunit_assert_equal(a(ivec2(0, 0)), d(ivec2(0, 0))); | |||
| } | |||
| lolunit_declare_test(array2d_views) | |||
| { | |||
| array2d<int> a(5, 3); | |||
| array2d_view<int> b(a); | |||
| lolunit_assert_equal(a.data(), b.data()); | |||
| a(3, 1) = 42; | |||
| lolunit_assert_equal(b(3, 1), 42); | |||
| b(4, 2) = 12; | |||
| lolunit_assert_equal(a(4, 2), 12); | |||
| } | |||
| #if 0 | |||
| lolunit_declare_test(array2d_init) | |||
| { | |||
| @@ -44,6 +44,75 @@ lolunit_declare_fixture(array3d_test) | |||
| lolunit_assert_equal(b(9, 9, 9), 8); | |||
| } | |||
| lolunit_declare_test(array3d_layout) | |||
| { | |||
| array3d<int> a(3, 2, 2); | |||
| // Check that the first element points to the array data | |||
| lolunit_assert_equal(&a(0, 0, 0), a.data()); | |||
| // Check that the layout is row-major | |||
| for (int i = 0; i < 12; ++i) | |||
| a.data()[i] = i; | |||
| lolunit_assert_equal(a(0, 0, 0), 0); | |||
| lolunit_assert_equal(a(1, 0, 0), 1); | |||
| lolunit_assert_equal(a(2, 0, 0), 2); | |||
| lolunit_assert_equal(a(0, 1, 0), 3); | |||
| lolunit_assert_equal(a(1, 1, 0), 4); | |||
| lolunit_assert_equal(a(2, 1, 0), 5); | |||
| lolunit_assert_equal(a(0, 0, 1), 6); | |||
| lolunit_assert_equal(a(1, 0, 1), 7); | |||
| lolunit_assert_equal(a(2, 0, 1), 8); | |||
| lolunit_assert_equal(a(0, 1, 1), 9); | |||
| lolunit_assert_equal(a(1, 1, 1), 10); | |||
| lolunit_assert_equal(a(2, 1, 1), 11); | |||
| } | |||
| lolunit_declare_test(array3d_resize) | |||
| { | |||
| array3d<int> a; | |||
| array3d<int> b(11, 12, 13); | |||
| array3d<int> c(ivec3(11, 12, 13)); | |||
| a.resize(11, 12, 13); | |||
| b.resize(ivec3(10, 10, 10)); | |||
| c.clear(); | |||
| lolunit_assert_equal(a.size(), 11 * 12 * 13); | |||
| lolunit_assert_equal(a.bytes(), 11 * 12 * 13 * sizeof(int)); | |||
| lolunit_assert_equal(a.sizes()[0], 11); | |||
| lolunit_assert_equal(a.sizes()[1], 12); | |||
| lolunit_assert_equal(a.sizes()[2], 13); | |||
| } | |||
| lolunit_declare_test(array3d_data) | |||
| { | |||
| array3d<int> a(3, 4, 5); | |||
| auto const &d = a; | |||
| lolunit_assert_equal(a.data(), d.data()); | |||
| a[0] = 12; | |||
| lolunit_assert_equal(a[0], d[0]); | |||
| lolunit_assert_equal(a(0, 0, 0), d(0, 0, 0)); | |||
| lolunit_assert_equal(a(ivec3(0, 0, 0)), d(ivec3(0, 0, 0))); | |||
| } | |||
| lolunit_declare_test(array3d_views) | |||
| { | |||
| array3d<int> a(5, 4, 3); | |||
| array3d_view<int> b(a); | |||
| lolunit_assert_equal(a.data(), b.data()); | |||
| a(3, 2, 1) = 42; | |||
| lolunit_assert_equal(b(3, 2, 1), 42); | |||
| b(4, 3, 2) = 12; | |||
| lolunit_assert_equal(a(4, 3, 2), 12); | |||
| } | |||
| #if 0 | |||
| lolunit_declare_test(array3d_init) | |||
| { | |||
| @@ -41,8 +41,11 @@ | |||
| <ItemGroup> | |||
| <ClCompile Include="test-common.cpp" /> | |||
| <ClCompile Include="base\array.cpp" /> | |||
| <ClCompile Include="base\array2d.cpp" /> | |||
| <ClCompile Include="base\array3d.cpp" /> | |||
| <ClCompile Include="base\enum.cpp" /> | |||
| <ClCompile Include="base\map.cpp" /> | |||
| <ClCompile Include="base\narray.cpp" /> | |||
| <ClCompile Include="base\string.cpp" /> | |||
| <ClCompile Include="base\types.cpp" /> | |||
| </ItemGroup> | |||
| @@ -40,14 +40,11 @@ | |||
| </ItemGroup> | |||
| <ItemGroup> | |||
| <ClCompile Include="test-common.cpp" /> | |||
| <ClCompile Include="math\array2d.cpp" /> | |||
| <ClCompile Include="math\array3d.cpp" /> | |||
| <ClCompile Include="math\box.cpp" /> | |||
| <ClCompile Include="math\bigint.cpp" /> | |||
| <ClCompile Include="math\cmplx.cpp" /> | |||
| <ClCompile Include="math\half.cpp" /> | |||
| <ClCompile Include="math\matrix.cpp" /> | |||
| <ClCompile Include="math\narray.cpp" /> | |||
| <ClCompile Include="math\noise\simplex.cpp" /> | |||
| <ClCompile Include="math\numbers.cpp" /> | |||
| <ClCompile Include="math\polynomial.cpp" /> | |||