diff --git a/etl_arduino.h b/etl_arduino.h new file mode 100644 index 00000000..7efdae0c --- /dev/null +++ b/etl_arduino.h @@ -0,0 +1,8 @@ + + +#ifndef __ETL_PLATFORM_ARDUINO__ + +#define COMPILER_GCC +#define PLATFORM_ARM + +#endif diff --git a/test/test_binary.cpp b/test/test_binary.cpp index 237b307b..238f7b9b 100644 --- a/test/test_binary.cpp +++ b/test/test_binary.cpp @@ -934,6 +934,27 @@ namespace CHECK_EQUAL(-357913942, (etl::sign_extend(value32))); CHECK_EQUAL(-357913942, (etl::sign_extend(value32))); + + value8 = 0x0A; + value8 &= 0x3F; // 6 bit number. + + CHECK_EQUAL(10, (etl::sign_extend(value8))); + CHECK_EQUAL(10, (etl::sign_extend(value8))); + CHECK_EQUAL(10, (etl::sign_extend(value8))); + CHECK_EQUAL(10, (etl::sign_extend(value8))); + + value16 = 0x0AAA; + value16 &= 0x3FFF; // 14 bit number. + + CHECK_EQUAL(2730, (etl::sign_extend(value16))); + CHECK_EQUAL(2730, (etl::sign_extend(value16))); + CHECK_EQUAL(2730, (etl::sign_extend(value16))); + + value32 = 0x0AAAAAAA; + value32 &= 0x3FFFFFFF; // 30 bit number. + + CHECK_EQUAL(178956970, (etl::sign_extend(value32))); + CHECK_EQUAL(178956970, (etl::sign_extend(value32))); } //************************************************************************* @@ -959,6 +980,27 @@ namespace CHECK_EQUAL(-357913942, (etl::sign_extend(value32, 30))); CHECK_EQUAL(-357913942, (etl::sign_extend(value32, 30))); + + value8 = 0x0A; + value8 &= 0x3F; // 6 bit number. + + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + + value16 = 0x0AAA; + value16 &= 0x3FFF; // 14 bit number. + + CHECK_EQUAL(2730, (etl::sign_extend(value16, 14))); + CHECK_EQUAL(2730, (etl::sign_extend(value16, 14))); + CHECK_EQUAL(2730, (etl::sign_extend(value16, 14))); + + value32 = 0x0AAAAAAA; + value32 &= 0x3FFFFFFF; // 30 bit number. + + CHECK_EQUAL(178956970, (etl::sign_extend(value32, 30))); + CHECK_EQUAL(178956970, (etl::sign_extend(value32, 30))); } }; }