diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3def121d1..da26cd5fb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,8 +21,8 @@ jobs: - name: Install Google Test run: | - wget -qO - https://github.com/google/googletest/archive/release-1.8.1.tar.gz | tar -xz - cmake -D CMAKE_INSTALL_PREFIX:PATH=$HOME/googletest -D CMAKE_BUILD_TYPE=Release googletest-release-1.8.1 + wget -qO - https://github.com/google/googletest/archive/release-1.10.0.tar.gz | tar -xz + cmake -D CMAKE_INSTALL_PREFIX:PATH=$HOME/googletest -D CMAKE_BUILD_TYPE=Release googletest-release-1.10.0 make install - name: Build and run unit tests diff --git a/pennylane_lightning/src/tests/lightning_util_unittest.cpp b/pennylane_lightning/src/tests/lightning_util_unittest.cpp index 1cc8d832d..212e0ac0a 100644 --- a/pennylane_lightning/src/tests/lightning_util_unittest.cpp +++ b/pennylane_lightning/src/tests/lightning_util_unittest.cpp @@ -14,33 +14,47 @@ #include "gtest/gtest.h" #include "../rework/Util.hpp" +#include + namespace test_utils { -TEST(exp2, fixed_example) { - std::vector inputs = {1, 2, 5, 8}; - std::vector outputs = {2, 4, 32, 256}; +class Exp2TestFixture :public ::testing::TestWithParam> { +}; - for (size_t i = 0; i < inputs.size(); i++) { - size_t result = Pennylane::exp2(inputs[i]); - EXPECT_TRUE(result == outputs[i]); - } +TEST_P(Exp2TestFixture, CheckExp2Results) { + int input = std::get<0>(GetParam()); + int expected = std::get<1>(GetParam()); + ASSERT_EQ(expected, Pennylane::exp2(input)); } -TEST(maxDecimalForQubit, fixed_example) { - std::vector> inputs = { - {0, 3}, - {1, 3}, - {2, 3}, - {0, 4}, - {2, 4}, - {2, 5}, - }; - std::vector outputs = {4, 2, 1, 8, 2, 4}; - - for (size_t i = 0; i < inputs.size(); i++) { - size_t result = Pennylane::maxDecimalForQubit(inputs[i][0], inputs[i][1]); - EXPECT_TRUE(result == outputs[i]); - } +INSTANTIATE_TEST_SUITE_P ( + Exp2Tests, + Exp2TestFixture, + ::testing::Values( + std::make_tuple(1, 2), + std::make_tuple(2, 4), + std::make_tuple(5, 32), + std::make_tuple(8, 256))); + +class maxDecimalForQubitTestFixture :public ::testing::TestWithParam> { +}; + +TEST_P(maxDecimalForQubitTestFixture, CheckMaxDecimalResults) { + unsigned int qubitIndex = std::get<0>(GetParam()); + unsigned int qubits = std::get<1>(GetParam()); + size_t expected = std::get<2>(GetParam()); + ASSERT_EQ(expected, Pennylane::maxDecimalForQubit(qubitIndex, qubits)); } +INSTANTIATE_TEST_SUITE_P ( + maxDecimalForQubitTests, + maxDecimalForQubitTestFixture, + ::testing::Values( + std::make_tuple(0, 3, 4), + std::make_tuple(1, 3, 2), + std::make_tuple(2, 3, 1), + std::make_tuple(0, 4, 8), + std::make_tuple(2, 4, 2), + std::make_tuple(2, 5, 4))); + }