Просмотр исходного кода

Improve unit tests for narray and narray_view classes.

wip/kinc
Sam Hocevar 5 лет назад
Родитель
Сommit
70d0231905
7 измененных файлов: 121 добавлений и 11 удалений
  1. +1
    -1
      lol
  2. +5
    -7
      src/t/Makefile.am
  3. +43
    -0
      src/t/base/array2d.cpp
  4. +69
    -0
      src/t/base/array3d.cpp
  5. +0
    -0
      src/t/base/narray.cpp
  6. +3
    -0
      src/t/test-base.vcxproj
  7. +0
    -3
      src/t/test-math.vcxproj

+ 1
- 1
lol

@@ -1 +1 @@
Subproject commit e0730821501436dee4056a4a17f7e312ac9df249
Subproject commit cffee479d3e09c5507db24f1467beb858f08f1dc

+ 5
- 7
src/t/Makefile.am Просмотреть файл

@@ -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 \


src/t/math/array2d.cpp → src/t/base/array2d.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)
{

src/t/math/array3d.cpp → src/t/base/array3d.cpp Просмотреть файл

@@ -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)
{

src/t/math/narray.cpp → src/t/base/narray.cpp Просмотреть файл


+ 3
- 0
src/t/test-base.vcxproj Просмотреть файл

@@ -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>


+ 0
- 3
src/t/test-math.vcxproj Просмотреть файл

@@ -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" />


Загрузка…
Отмена
Сохранить