diff --git a/test/Makefile.am b/test/Makefile.am index 61201c40..aaddff86 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -23,7 +23,8 @@ TESTS = testsuite testsuite_SOURCES = testsuite.cpp \ unit/vector.cpp unit/matrix.cpp unit/half.cpp unit/trig.cpp \ - unit/build.cpp unit/real.cpp unit/image.cpp unit/quat.cpp unit/cmplx.cpp + unit/build.cpp unit/real.cpp unit/image.cpp unit/quat.cpp unit/cmplx.cpp \ + unit/array.cpp testsuite_CPPFLAGS = @LOL_CFLAGS@ @PIPI_CFLAGS@ testsuite_LDFLAGS = $(top_builddir)/src/liblol.a @LOL_LIBS@ @PIPI_LIBS@ testsuite_DEPENDENCIES = $(top_builddir)/src/liblol.a diff --git a/test/unit/array.cpp b/test/unit/array.cpp new file mode 100644 index 00000000..8a0ea09b --- /dev/null +++ b/test/unit/array.cpp @@ -0,0 +1,74 @@ +// +// Lol Engine +// +// Copyright: (c) 2010-2012 Sam Hocevar +// This program is free software; you can redistribute it and/or +// modify it under the terms of the Do What The Fuck You Want To +// Public License, Version 2, as published by Sam Hocevar. See +// http://sam.zoy.org/projects/COPYING.WTFPL for more details. +// + +#if defined HAVE_CONFIG_H +# include "config.h" +#endif + +#include "core.h" +#include "lol/unit.h" + +namespace lol +{ + +LOLUNIT_FIXTURE(ArrayTest) +{ + void SetUp() {} + + void TearDown() {} + + LOLUNIT_TEST(ArrayFill) + { + Array a; + a.Append(0); + a.Append(1); + a.Append(2); + a.Append(3); + + LOLUNIT_ASSERT_EQUAL(a[0], 0); + LOLUNIT_ASSERT_EQUAL(a[1], 1); + LOLUNIT_ASSERT_EQUAL(a[2], 2); + LOLUNIT_ASSERT_EQUAL(a[3], 3); + } + + LOLUNIT_TEST(ArrayCopy) + { + Array a; + a.Append(0); + a.Append(1); + a.Append(2); + a.Append(3); + + Array b = a; + + LOLUNIT_ASSERT_EQUAL(b[0], 0); + LOLUNIT_ASSERT_EQUAL(b[1], 1); + LOLUNIT_ASSERT_EQUAL(b[2], 2); + LOLUNIT_ASSERT_EQUAL(b[3], 3); + } + + LOLUNIT_TEST(EightElements) + { + Array a; + a.Append(1, 2, 3.f, 4.0, 5, 'a', true, 0); + + LOLUNIT_ASSERT_EQUAL(a[0].m1, 1); + LOLUNIT_ASSERT_EQUAL(a[0].m2, 2); + LOLUNIT_ASSERT_EQUAL(a[0].m3, 3.f); + LOLUNIT_ASSERT_EQUAL(a[0].m4, 4.0); + LOLUNIT_ASSERT_EQUAL(a[0].m5, 5); + LOLUNIT_ASSERT_EQUAL(a[0].m6, 'a'); + LOLUNIT_ASSERT_EQUAL(a[0].m7, true); + LOLUNIT_ASSERT_EQUAL(a[0].m8, 0); + } +}; + +} /* namespace lol */ + diff --git a/win32/testsuite.vcxproj b/win32/testsuite.vcxproj index 9e4b0a90..d57eab3b 100644 --- a/win32/testsuite.vcxproj +++ b/win32/testsuite.vcxproj @@ -28,6 +28,7 @@ +