From f7f6e10c704585c4652fda359dc225fbb95b6075 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sat, 11 May 2013 21:40:09 +0200 Subject: Added check and warning about non-power-of-2 textures --- test/unit/CMakeLists.txt | 1 + test/unit/math/func_test.cpp | 55 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 test/unit/math/func_test.cpp (limited to 'test') diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index df92b9c..b7051fb 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -177,6 +177,7 @@ set(UT_SOURCES main.cpp app/app_test.cpp graphics/engine/lightman_test.cpp +math/func_test.cpp math/geometry_test.cpp math/matrix_test.cpp math/vector_test.cpp diff --git a/test/unit/math/func_test.cpp b/test/unit/math/func_test.cpp new file mode 100644 index 0000000..00a564b --- /dev/null +++ b/test/unit/math/func_test.cpp @@ -0,0 +1,55 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2012, Polish Portal of Colobot (PPC) +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, either version 3 of the License, or +// * (at your option) any later version. +// * +// * This program is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// * GNU General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see http://www.gnu.org/licenses/. + +/* + Unit tests for math functions. + */ + +#include "math/func.h" + +#include "gtest/gtest.h" + + +TEST(IsPowerOfTwo, TestDifferentValues) +{ + EXPECT_FALSE(Math::IsPowerOfTwo(0)); + EXPECT_TRUE(Math::IsPowerOfTwo(1)); + EXPECT_TRUE(Math::IsPowerOfTwo(2)); + EXPECT_FALSE(Math::IsPowerOfTwo(3)); + EXPECT_TRUE(Math::IsPowerOfTwo(4)); + + EXPECT_FALSE(Math::IsPowerOfTwo(31)); + EXPECT_TRUE(Math::IsPowerOfTwo(32)); + EXPECT_FALSE(Math::IsPowerOfTwo(33)); + + EXPECT_FALSE(Math::IsPowerOfTwo(1234)); +} + +TEST(NextPowerOfTwo, TestDifferentValues) +{ + EXPECT_EQ(2, Math::NextPowerOfTwo(2)); + EXPECT_EQ(4, Math::NextPowerOfTwo(3)); + EXPECT_EQ(4, Math::NextPowerOfTwo(4)); + EXPECT_EQ(8, Math::NextPowerOfTwo(5)); + + EXPECT_EQ(8, Math::NextPowerOfTwo(7)); + EXPECT_EQ(8, Math::NextPowerOfTwo(8)); + EXPECT_EQ(16, Math::NextPowerOfTwo(9)); + + EXPECT_EQ(32, Math::NextPowerOfTwo(31)); + EXPECT_EQ(32, Math::NextPowerOfTwo(32)); + EXPECT_EQ(64, Math::NextPowerOfTwo(33)); +} -- cgit v1.2.3-1-g7c22