test arrays

This commit is contained in:
Matthew Kennedy 2022-07-16 22:28:23 -07:00
parent de737f4746
commit 7fea28f1c1
2 changed files with 45 additions and 0 deletions

44
util/test/test_arrays.cpp Normal file
View File

@ -0,0 +1,44 @@
#include <rusefi/arrays.h>
#include <gtest/gtest.h>
#include <gmock/gmock.h>
using testing::ElementsAre;
TEST(Util_Arrays, CopyArray) {
int arr[2];
// Copy from an initializer list
copyArray(arr, { 10, 20 });
ASSERT_THAT(arr, ElementsAre(10, 20));
// Copy from another array
int arr2[] = { 30, 40 };
copyArray(arr, arr2);
ASSERT_THAT(arr, ElementsAre(30, 40));
// Copy to a scaled channel
scaled_channel<int, 10, 1> arr3[2];
copyArray(arr3, { 100, 200 });
ASSERT_THAT(arr3, ElementsAre(100, 200));
}
TEST(Util_Arrays, CopyArrayPartial) {
int arr[4];
copyArray(arr, { 1, 2, 3, 4 });
ASSERT_THAT(arr, ElementsAre(1, 2, 3, 4));
// Copy a smaller array over the beginning of arr
copyArrayPartial(arr, { 100, 200 });
ASSERT_THAT(arr, ElementsAre(100, 200, 3, 4));
}
TEST(Util_Arrays, Size) {
int arr1[2];
uint8_t arr2[17];
scaled_channel<uint16_t, 3, 1> arr3[21];
ASSERT_EQ(2, efi::size(arr1));
ASSERT_EQ(17, efi::size(arr2));
ASSERT_EQ(21, efi::size(arr3));
}

View File

@ -6,5 +6,6 @@ RUSEFI_LIB_CPP += \
$(RUSEFI_LIB)/util/src/math.cpp \
RUSEFI_LIB_CPP_TEST += \
$(RUSEFI_LIB)/util/test/test_arrays.cpp \
$(RUSEFI_LIB)/util/test/test_math.cpp \