135375f98Sopenharmony_ci/* ========================================== 235375f98Sopenharmony_ci Unity Project - A Test Framework for C 335375f98Sopenharmony_ci Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams 435375f98Sopenharmony_ci [Released under MIT License. Please refer to license.txt for details] 535375f98Sopenharmony_ci========================================== */ 635375f98Sopenharmony_ci 735375f98Sopenharmony_ci#include "unity.h" 835375f98Sopenharmony_ci#define TEST_INSTANCES 935375f98Sopenharmony_ci#include "self_assessment_utils.h" 1035375f98Sopenharmony_ci 1135375f98Sopenharmony_cistatic int SetToOneToFailInTearDown; 1235375f98Sopenharmony_cistatic int SetToOneMeanWeAlreadyCheckedThisGuy; 1335375f98Sopenharmony_ci 1435375f98Sopenharmony_civoid setUp(void) 1535375f98Sopenharmony_ci{ 1635375f98Sopenharmony_ci SetToOneToFailInTearDown = 0; 1735375f98Sopenharmony_ci SetToOneMeanWeAlreadyCheckedThisGuy = 0; 1835375f98Sopenharmony_ci} 1935375f98Sopenharmony_ci 2035375f98Sopenharmony_civoid tearDown(void) 2135375f98Sopenharmony_ci{ 2235375f98Sopenharmony_ci endPutcharSpy(); /* Stop suppressing test output */ 2335375f98Sopenharmony_ci if (SetToOneToFailInTearDown == 1) 2435375f98Sopenharmony_ci { 2535375f98Sopenharmony_ci /* These will be skipped internally if already failed/ignored */ 2635375f98Sopenharmony_ci TEST_FAIL_MESSAGE("<= Failed in tearDown"); 2735375f98Sopenharmony_ci TEST_IGNORE_MESSAGE("<= Ignored in tearDown"); 2835375f98Sopenharmony_ci } 2935375f98Sopenharmony_ci if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0)) 3035375f98Sopenharmony_ci { 3135375f98Sopenharmony_ci UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]"); 3235375f98Sopenharmony_ci UNITY_OUTPUT_CHAR('\n'); 3335375f98Sopenharmony_ci } 3435375f98Sopenharmony_ci} 3535375f98Sopenharmony_ci 3635375f98Sopenharmony_civoid testFloatsWithinDelta(void) 3735375f98Sopenharmony_ci{ 3835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 3935375f98Sopenharmony_ci TEST_IGNORE(); 4035375f98Sopenharmony_ci#else 4135375f98Sopenharmony_ci TEST_ASSERT_FLOAT_WITHIN(0.00003f, 187245.03485f, 187245.03488f); 4235375f98Sopenharmony_ci TEST_ASSERT_FLOAT_WITHIN(1.0f, 187245.0f, 187246.0f); 4335375f98Sopenharmony_ci TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2549f, 9273.2049f); 4435375f98Sopenharmony_ci TEST_ASSERT_FLOAT_WITHIN(0.007f, -726.93724f, -726.94424f); 4535375f98Sopenharmony_ci 4635375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 4735375f98Sopenharmony_ci TEST_ASSERT_FLOAT_NOT_WITHIN(0.05f, 9273.2549f, 9273.2049f); 4835375f98Sopenharmony_ci VERIFY_FAILS_END 4935375f98Sopenharmony_ci#endif 5035375f98Sopenharmony_ci} 5135375f98Sopenharmony_ci 5235375f98Sopenharmony_civoid testFloatsNotWithinDelta(void) 5335375f98Sopenharmony_ci{ 5435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 5535375f98Sopenharmony_ci TEST_IGNORE(); 5635375f98Sopenharmony_ci#else 5735375f98Sopenharmony_ci TEST_ASSERT_FLOAT_NOT_WITHIN(0.05f, 9273.2649f, 9273.2049f); 5835375f98Sopenharmony_ci 5935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 6035375f98Sopenharmony_ci TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2649f, 9273.2049f); 6135375f98Sopenharmony_ci VERIFY_FAILS_END 6235375f98Sopenharmony_ci#endif 6335375f98Sopenharmony_ci} 6435375f98Sopenharmony_ci 6535375f98Sopenharmony_civoid testFloatsEqual(void) 6635375f98Sopenharmony_ci{ 6735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 6835375f98Sopenharmony_ci TEST_IGNORE(); 6935375f98Sopenharmony_ci#else 7035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(187245.0f, 187246.0f); 7135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(18724.5f, 18724.6f); 7235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(9273.2549f, 9273.2599f); 7335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(-726.93724f, -726.9374f); 7435375f98Sopenharmony_ci 7535375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 7635375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(-726.93724f, -726.9374f); 7735375f98Sopenharmony_ci VERIFY_FAILS_END 7835375f98Sopenharmony_ci#endif 7935375f98Sopenharmony_ci} 8035375f98Sopenharmony_ci 8135375f98Sopenharmony_civoid testFloatsNotEqual(void) 8235375f98Sopenharmony_ci{ 8335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 8435375f98Sopenharmony_ci TEST_IGNORE(); 8535375f98Sopenharmony_ci#else 8635375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(9273.9649f, 9273.0049f); 8735375f98Sopenharmony_ci 8835375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 8935375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(9273.9649f, 9273.0049f); 9035375f98Sopenharmony_ci VERIFY_FAILS_END 9135375f98Sopenharmony_ci#endif 9235375f98Sopenharmony_ci} 9335375f98Sopenharmony_ci 9435375f98Sopenharmony_civoid testFloatsNotEqualNegative1(void) 9535375f98Sopenharmony_ci{ 9635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 9735375f98Sopenharmony_ci TEST_IGNORE(); 9835375f98Sopenharmony_ci#else 9935375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(-9273.9649f, -9273.0049f); 10035375f98Sopenharmony_ci 10135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 10235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(-9273.9649f, -9273.0049f); 10335375f98Sopenharmony_ci VERIFY_FAILS_END 10435375f98Sopenharmony_ci#endif 10535375f98Sopenharmony_ci} 10635375f98Sopenharmony_ci 10735375f98Sopenharmony_civoid testFloatsNotEqualNegative2(void) 10835375f98Sopenharmony_ci{ 10935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 11035375f98Sopenharmony_ci TEST_IGNORE(); 11135375f98Sopenharmony_ci#else 11235375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(-9273.0049f, -9273.9649f); 11335375f98Sopenharmony_ci 11435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 11535375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(-9273.0049f, -9273.9649f); 11635375f98Sopenharmony_ci VERIFY_FAILS_END 11735375f98Sopenharmony_ci#endif 11835375f98Sopenharmony_ci} 11935375f98Sopenharmony_ci 12035375f98Sopenharmony_civoid testFloatsNotEqualActualNaN(void) 12135375f98Sopenharmony_ci{ 12235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 12335375f98Sopenharmony_ci TEST_IGNORE(); 12435375f98Sopenharmony_ci#else 12535375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(85.963f, 0.0f / f_zero); 12635375f98Sopenharmony_ci 12735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 12835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(85.963f, 0.0f / f_zero); 12935375f98Sopenharmony_ci VERIFY_FAILS_END 13035375f98Sopenharmony_ci#endif 13135375f98Sopenharmony_ci} 13235375f98Sopenharmony_ci 13335375f98Sopenharmony_civoid testFloatsNotEqualExpectedNaN(void) 13435375f98Sopenharmony_ci{ 13535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 13635375f98Sopenharmony_ci TEST_IGNORE(); 13735375f98Sopenharmony_ci#else 13835375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(0.0f / f_zero, 85.963f); 13935375f98Sopenharmony_ci 14035375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 14135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 85.963f); 14235375f98Sopenharmony_ci VERIFY_FAILS_END 14335375f98Sopenharmony_ci#endif 14435375f98Sopenharmony_ci} 14535375f98Sopenharmony_ci 14635375f98Sopenharmony_civoid testFloatsEqualBothNaN(void) 14735375f98Sopenharmony_ci{ 14835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 14935375f98Sopenharmony_ci TEST_IGNORE(); 15035375f98Sopenharmony_ci#else 15135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero); 15235375f98Sopenharmony_ci 15335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 15435375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero); 15535375f98Sopenharmony_ci VERIFY_FAILS_END 15635375f98Sopenharmony_ci#endif 15735375f98Sopenharmony_ci} 15835375f98Sopenharmony_ci 15935375f98Sopenharmony_civoid testFloatsNotEqualInfNaN(void) 16035375f98Sopenharmony_ci{ 16135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 16235375f98Sopenharmony_ci TEST_IGNORE(); 16335375f98Sopenharmony_ci#else 16435375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(1.0f / f_zero, 0.0f / f_zero); 16535375f98Sopenharmony_ci 16635375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 16735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 0.0f / f_zero); 16835375f98Sopenharmony_ci VERIFY_FAILS_END 16935375f98Sopenharmony_ci#endif 17035375f98Sopenharmony_ci} 17135375f98Sopenharmony_ci 17235375f98Sopenharmony_civoid testFloatsNotEqualNaNInf(void) 17335375f98Sopenharmony_ci{ 17435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 17535375f98Sopenharmony_ci TEST_IGNORE(); 17635375f98Sopenharmony_ci#else 17735375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(0.0f / f_zero, 1.0f / f_zero); 17835375f98Sopenharmony_ci 17935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 18035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 1.0f / f_zero); 18135375f98Sopenharmony_ci VERIFY_FAILS_END 18235375f98Sopenharmony_ci#endif 18335375f98Sopenharmony_ci} 18435375f98Sopenharmony_ci 18535375f98Sopenharmony_civoid testFloatsNotEqualActualInf(void) 18635375f98Sopenharmony_ci{ 18735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 18835375f98Sopenharmony_ci TEST_IGNORE(); 18935375f98Sopenharmony_ci#else 19035375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(321.642f, 1.0f / f_zero); 19135375f98Sopenharmony_ci 19235375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 19335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(321.642f, 1.0f / f_zero); 19435375f98Sopenharmony_ci VERIFY_FAILS_END 19535375f98Sopenharmony_ci#endif 19635375f98Sopenharmony_ci} 19735375f98Sopenharmony_ci 19835375f98Sopenharmony_civoid testFloatsNotEqualExpectedInf(void) 19935375f98Sopenharmony_ci{ 20035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 20135375f98Sopenharmony_ci TEST_IGNORE(); 20235375f98Sopenharmony_ci#else 20335375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(1.0f / f_zero, 321.642f); 20435375f98Sopenharmony_ci 20535375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 20635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 321.642f); 20735375f98Sopenharmony_ci VERIFY_FAILS_END 20835375f98Sopenharmony_ci#endif 20935375f98Sopenharmony_ci} 21035375f98Sopenharmony_ci 21135375f98Sopenharmony_civoid testFloatsEqualBothInf(void) 21235375f98Sopenharmony_ci{ 21335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 21435375f98Sopenharmony_ci TEST_IGNORE(); 21535375f98Sopenharmony_ci#else 21635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero); 21735375f98Sopenharmony_ci 21835375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 21935375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero); 22035375f98Sopenharmony_ci VERIFY_FAILS_END 22135375f98Sopenharmony_ci#endif 22235375f98Sopenharmony_ci} 22335375f98Sopenharmony_ci 22435375f98Sopenharmony_civoid testFloatsNotEqualPlusMinusInf(void) 22535375f98Sopenharmony_ci{ 22635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 22735375f98Sopenharmony_ci TEST_IGNORE(); 22835375f98Sopenharmony_ci#else 22935375f98Sopenharmony_ci TEST_ASSERT_NOT_EQUAL_FLOAT(1.0f / f_zero, -1.0f / f_zero); 23035375f98Sopenharmony_ci 23135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 23235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, -1.0f / f_zero); 23335375f98Sopenharmony_ci VERIFY_FAILS_END 23435375f98Sopenharmony_ci#endif 23535375f98Sopenharmony_ci} 23635375f98Sopenharmony_ci 23735375f98Sopenharmony_civoid testFloatsGreaterThan(void) 23835375f98Sopenharmony_ci{ 23935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 24035375f98Sopenharmony_ci TEST_IGNORE(); 24135375f98Sopenharmony_ci#else 24235375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(1.0f, 2.0f); 24335375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(-1.0f, 1.0f); 24435375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(-2.0f, -1.0f); 24535375f98Sopenharmony_ci#endif 24635375f98Sopenharmony_ci} 24735375f98Sopenharmony_ci 24835375f98Sopenharmony_civoid testFloatsGreaterThanInf(void) 24935375f98Sopenharmony_ci{ 25035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 25135375f98Sopenharmony_ci TEST_IGNORE(); 25235375f98Sopenharmony_ci#else 25335375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(1.0f, 1.0f / f_zero); 25435375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(-1.0f / f_zero, 1.0f / f_zero); 25535375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(-1.0f / f_zero, 1.0f); 25635375f98Sopenharmony_ci#endif 25735375f98Sopenharmony_ci} 25835375f98Sopenharmony_ci 25935375f98Sopenharmony_civoid testFloatsNotGreaterThan(void) 26035375f98Sopenharmony_ci{ 26135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 26235375f98Sopenharmony_ci TEST_IGNORE(); 26335375f98Sopenharmony_ci#else 26435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 26535375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(2.0f, 1.0f); 26635375f98Sopenharmony_ci VERIFY_FAILS_END 26735375f98Sopenharmony_ci#endif 26835375f98Sopenharmony_ci} 26935375f98Sopenharmony_ci 27035375f98Sopenharmony_civoid testFloatsNotGreaterThanNanActual(void) 27135375f98Sopenharmony_ci{ 27235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 27335375f98Sopenharmony_ci TEST_IGNORE(); 27435375f98Sopenharmony_ci#else 27535375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 27635375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(1.0f, 0.0f / f_zero); 27735375f98Sopenharmony_ci VERIFY_FAILS_END 27835375f98Sopenharmony_ci#endif 27935375f98Sopenharmony_ci} 28035375f98Sopenharmony_ci 28135375f98Sopenharmony_civoid testFloatsNotGreaterThanNanThreshold(void) 28235375f98Sopenharmony_ci{ 28335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 28435375f98Sopenharmony_ci TEST_IGNORE(); 28535375f98Sopenharmony_ci#else 28635375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 28735375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(0.0f / f_zero, 1.0f); 28835375f98Sopenharmony_ci VERIFY_FAILS_END 28935375f98Sopenharmony_ci#endif 29035375f98Sopenharmony_ci} 29135375f98Sopenharmony_ci 29235375f98Sopenharmony_civoid testFloatsNotGreaterThanNanBoth(void) 29335375f98Sopenharmony_ci{ 29435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 29535375f98Sopenharmony_ci TEST_IGNORE(); 29635375f98Sopenharmony_ci#else 29735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 29835375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(0.0f / f_zero, 0.0f / f_zero); 29935375f98Sopenharmony_ci VERIFY_FAILS_END 30035375f98Sopenharmony_ci#endif 30135375f98Sopenharmony_ci} 30235375f98Sopenharmony_ci 30335375f98Sopenharmony_civoid testFloatsNotGreaterThanInfActual(void) 30435375f98Sopenharmony_ci{ 30535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 30635375f98Sopenharmony_ci TEST_IGNORE(); 30735375f98Sopenharmony_ci#else 30835375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 30935375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(1.0f / f_zero, 1.0f); 31035375f98Sopenharmony_ci VERIFY_FAILS_END 31135375f98Sopenharmony_ci#endif 31235375f98Sopenharmony_ci} 31335375f98Sopenharmony_ci 31435375f98Sopenharmony_civoid testFloatsNotGreaterThanNegInf(void) 31535375f98Sopenharmony_ci{ 31635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 31735375f98Sopenharmony_ci TEST_IGNORE(); 31835375f98Sopenharmony_ci#else 31935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 32035375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(1.0f, -1.0f / f_zero); 32135375f98Sopenharmony_ci VERIFY_FAILS_END 32235375f98Sopenharmony_ci#endif 32335375f98Sopenharmony_ci} 32435375f98Sopenharmony_ci 32535375f98Sopenharmony_civoid testFloatsNotGreaterThanBothInf(void) 32635375f98Sopenharmony_ci{ 32735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 32835375f98Sopenharmony_ci TEST_IGNORE(); 32935375f98Sopenharmony_ci#else 33035375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 33135375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(1.0f / f_zero, 1.0f / f_zero); 33235375f98Sopenharmony_ci VERIFY_FAILS_END 33335375f98Sopenharmony_ci#endif 33435375f98Sopenharmony_ci} 33535375f98Sopenharmony_ci 33635375f98Sopenharmony_civoid testFloatsNotGreaterThanBothNegInf(void) 33735375f98Sopenharmony_ci{ 33835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 33935375f98Sopenharmony_ci TEST_IGNORE(); 34035375f98Sopenharmony_ci#else 34135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 34235375f98Sopenharmony_ci TEST_ASSERT_GREATER_THAN_FLOAT(-1.0f / f_zero, -1.0f / f_zero); 34335375f98Sopenharmony_ci VERIFY_FAILS_END 34435375f98Sopenharmony_ci#endif 34535375f98Sopenharmony_ci} 34635375f98Sopenharmony_ci 34735375f98Sopenharmony_civoid testFloatsGreaterOrEqual(void) 34835375f98Sopenharmony_ci{ 34935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 35035375f98Sopenharmony_ci TEST_IGNORE(); 35135375f98Sopenharmony_ci#else 35235375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(1.0f, 2.0f); 35335375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(2.0f, 2.0f); 35435375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(-1.0f, 1.0f); 35535375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(-2.0f, -1.0f); 35635375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(-2.0f, -2.0f); 35735375f98Sopenharmony_ci#endif 35835375f98Sopenharmony_ci} 35935375f98Sopenharmony_ci 36035375f98Sopenharmony_civoid testFloatsGreaterOrEqualInf(void) 36135375f98Sopenharmony_ci{ 36235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 36335375f98Sopenharmony_ci TEST_IGNORE(); 36435375f98Sopenharmony_ci#else 36535375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(1.0f, 1.0f / f_zero); 36635375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(-1.0f / f_zero, 1.0f / f_zero); 36735375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(-1.0f / f_zero, 1.0f); 36835375f98Sopenharmony_ci#endif 36935375f98Sopenharmony_ci} 37035375f98Sopenharmony_ci 37135375f98Sopenharmony_civoid testFloatsNotGreaterOrEqual(void) 37235375f98Sopenharmony_ci{ 37335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 37435375f98Sopenharmony_ci TEST_IGNORE(); 37535375f98Sopenharmony_ci#else 37635375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 37735375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(2.0f, 1.0f); 37835375f98Sopenharmony_ci VERIFY_FAILS_END 37935375f98Sopenharmony_ci#endif 38035375f98Sopenharmony_ci} 38135375f98Sopenharmony_ci 38235375f98Sopenharmony_civoid testFloatsNotGreaterOrEqualNanActual(void) 38335375f98Sopenharmony_ci{ 38435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 38535375f98Sopenharmony_ci TEST_IGNORE(); 38635375f98Sopenharmony_ci#else 38735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 38835375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(1.0f, 0.0f / f_zero); 38935375f98Sopenharmony_ci VERIFY_FAILS_END 39035375f98Sopenharmony_ci#endif 39135375f98Sopenharmony_ci} 39235375f98Sopenharmony_ci 39335375f98Sopenharmony_civoid testFloatsNotGreaterOrEqualNanThreshold(void) 39435375f98Sopenharmony_ci{ 39535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 39635375f98Sopenharmony_ci TEST_IGNORE(); 39735375f98Sopenharmony_ci#else 39835375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 39935375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(0.0f / f_zero, 1.0f); 40035375f98Sopenharmony_ci VERIFY_FAILS_END 40135375f98Sopenharmony_ci#endif 40235375f98Sopenharmony_ci} 40335375f98Sopenharmony_ci 40435375f98Sopenharmony_civoid testFloatsGreaterOrEqualNanBoth(void) 40535375f98Sopenharmony_ci{ 40635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 40735375f98Sopenharmony_ci TEST_IGNORE(); 40835375f98Sopenharmony_ci#else 40935375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero); 41035375f98Sopenharmony_ci#endif 41135375f98Sopenharmony_ci} 41235375f98Sopenharmony_ci 41335375f98Sopenharmony_civoid testFloatsNotGreaterOrEqualInfActual(void) 41435375f98Sopenharmony_ci{ 41535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 41635375f98Sopenharmony_ci TEST_IGNORE(); 41735375f98Sopenharmony_ci#else 41835375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 41935375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(1.0f / f_zero, 1.0f); 42035375f98Sopenharmony_ci VERIFY_FAILS_END 42135375f98Sopenharmony_ci#endif 42235375f98Sopenharmony_ci} 42335375f98Sopenharmony_ci 42435375f98Sopenharmony_civoid testFloatsNotGreaterOrEqualNegInf(void) 42535375f98Sopenharmony_ci{ 42635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 42735375f98Sopenharmony_ci TEST_IGNORE(); 42835375f98Sopenharmony_ci#else 42935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 43035375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(1.0f, -1.0f / f_zero); 43135375f98Sopenharmony_ci VERIFY_FAILS_END 43235375f98Sopenharmony_ci#endif 43335375f98Sopenharmony_ci} 43435375f98Sopenharmony_ci 43535375f98Sopenharmony_civoid testFloatsGreaterOrEqualBothInf(void) 43635375f98Sopenharmony_ci{ 43735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 43835375f98Sopenharmony_ci TEST_IGNORE(); 43935375f98Sopenharmony_ci#else 44035375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero); 44135375f98Sopenharmony_ci#endif 44235375f98Sopenharmony_ci} 44335375f98Sopenharmony_ci 44435375f98Sopenharmony_civoid testFloatsGreaterOrEqualBothNegInf(void) 44535375f98Sopenharmony_ci{ 44635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 44735375f98Sopenharmony_ci TEST_IGNORE(); 44835375f98Sopenharmony_ci#else 44935375f98Sopenharmony_ci TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(-1.0f / f_zero, -1.0f / f_zero); 45035375f98Sopenharmony_ci#endif 45135375f98Sopenharmony_ci} 45235375f98Sopenharmony_ci 45335375f98Sopenharmony_civoid testFloatsLessThan(void) 45435375f98Sopenharmony_ci{ 45535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 45635375f98Sopenharmony_ci TEST_IGNORE(); 45735375f98Sopenharmony_ci#else 45835375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(2.0f, 1.0f); 45935375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f, -1.0f); 46035375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(-1.0f, -2.0f); 46135375f98Sopenharmony_ci#endif 46235375f98Sopenharmony_ci} 46335375f98Sopenharmony_ci 46435375f98Sopenharmony_civoid testFloatsLessThanInf(void) 46535375f98Sopenharmony_ci{ 46635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 46735375f98Sopenharmony_ci TEST_IGNORE(); 46835375f98Sopenharmony_ci#else 46935375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f / f_zero, 1.0f); 47035375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f / f_zero, -1.0f / f_zero); 47135375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f, -1.0f / f_zero); 47235375f98Sopenharmony_ci#endif 47335375f98Sopenharmony_ci} 47435375f98Sopenharmony_ci 47535375f98Sopenharmony_civoid testFloatsNotLessThan(void) 47635375f98Sopenharmony_ci{ 47735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 47835375f98Sopenharmony_ci TEST_IGNORE(); 47935375f98Sopenharmony_ci#else 48035375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 48135375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f, 2.0f); 48235375f98Sopenharmony_ci VERIFY_FAILS_END 48335375f98Sopenharmony_ci#endif 48435375f98Sopenharmony_ci} 48535375f98Sopenharmony_ci 48635375f98Sopenharmony_civoid testFloatsNotLessThanNanActual(void) 48735375f98Sopenharmony_ci{ 48835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 48935375f98Sopenharmony_ci TEST_IGNORE(); 49035375f98Sopenharmony_ci#else 49135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 49235375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f, 0.0f / f_zero); 49335375f98Sopenharmony_ci VERIFY_FAILS_END 49435375f98Sopenharmony_ci#endif 49535375f98Sopenharmony_ci} 49635375f98Sopenharmony_ci 49735375f98Sopenharmony_civoid testFloatsNotLessThanNanThreshold(void) 49835375f98Sopenharmony_ci{ 49935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 50035375f98Sopenharmony_ci TEST_IGNORE(); 50135375f98Sopenharmony_ci#else 50235375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 50335375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(0.0f / f_zero, 1.0f); 50435375f98Sopenharmony_ci VERIFY_FAILS_END 50535375f98Sopenharmony_ci#endif 50635375f98Sopenharmony_ci} 50735375f98Sopenharmony_ci 50835375f98Sopenharmony_civoid testFloatsNotLessThanNanBoth(void) 50935375f98Sopenharmony_ci{ 51035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 51135375f98Sopenharmony_ci TEST_IGNORE(); 51235375f98Sopenharmony_ci#else 51335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 51435375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(0.0f / f_zero, 0.0f / f_zero); 51535375f98Sopenharmony_ci VERIFY_FAILS_END 51635375f98Sopenharmony_ci#endif 51735375f98Sopenharmony_ci} 51835375f98Sopenharmony_ci 51935375f98Sopenharmony_civoid testFloatsNotLessThanInf(void) 52035375f98Sopenharmony_ci{ 52135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 52235375f98Sopenharmony_ci TEST_IGNORE(); 52335375f98Sopenharmony_ci#else 52435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 52535375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f, 1.0f / f_zero); 52635375f98Sopenharmony_ci VERIFY_FAILS_END 52735375f98Sopenharmony_ci#endif 52835375f98Sopenharmony_ci} 52935375f98Sopenharmony_ci 53035375f98Sopenharmony_civoid testFloatsNotLessThanNegInf(void) 53135375f98Sopenharmony_ci{ 53235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 53335375f98Sopenharmony_ci TEST_IGNORE(); 53435375f98Sopenharmony_ci#else 53535375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 53635375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(-1.0f / f_zero, 1.0f); 53735375f98Sopenharmony_ci VERIFY_FAILS_END 53835375f98Sopenharmony_ci#endif 53935375f98Sopenharmony_ci} 54035375f98Sopenharmony_ci 54135375f98Sopenharmony_civoid testFloatsNotLessThanBothInf(void) 54235375f98Sopenharmony_ci{ 54335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 54435375f98Sopenharmony_ci TEST_IGNORE(); 54535375f98Sopenharmony_ci#else 54635375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 54735375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(1.0f / f_zero, 1.0f / f_zero); 54835375f98Sopenharmony_ci VERIFY_FAILS_END 54935375f98Sopenharmony_ci#endif 55035375f98Sopenharmony_ci} 55135375f98Sopenharmony_ci 55235375f98Sopenharmony_civoid testFloatsNotLessThanBothNegInf(void) 55335375f98Sopenharmony_ci{ 55435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 55535375f98Sopenharmony_ci TEST_IGNORE(); 55635375f98Sopenharmony_ci#else 55735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 55835375f98Sopenharmony_ci TEST_ASSERT_LESS_THAN_FLOAT(-1.0f / f_zero, -1.0f / f_zero); 55935375f98Sopenharmony_ci VERIFY_FAILS_END 56035375f98Sopenharmony_ci#endif 56135375f98Sopenharmony_ci} 56235375f98Sopenharmony_civoid testFloatsLessOrEqual(void) 56335375f98Sopenharmony_ci{ 56435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 56535375f98Sopenharmony_ci TEST_IGNORE(); 56635375f98Sopenharmony_ci#else 56735375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(2.0f, 1.0f); 56835375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(2.0f, 2.0f); 56935375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f, -1.0f); 57035375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(-1.0f, -2.0f); 57135375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(-2.0f, -2.0f); 57235375f98Sopenharmony_ci#endif 57335375f98Sopenharmony_ci} 57435375f98Sopenharmony_ci 57535375f98Sopenharmony_civoid testFloatsLessOrEqualInf(void) 57635375f98Sopenharmony_ci{ 57735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 57835375f98Sopenharmony_ci TEST_IGNORE(); 57935375f98Sopenharmony_ci#else 58035375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f / f_zero, 1.0f); 58135375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f / f_zero, -1.0f / f_zero); 58235375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f, -1.0f / f_zero); 58335375f98Sopenharmony_ci#endif 58435375f98Sopenharmony_ci} 58535375f98Sopenharmony_ci 58635375f98Sopenharmony_civoid testFloatsNotLessOrEqual(void) 58735375f98Sopenharmony_ci{ 58835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 58935375f98Sopenharmony_ci TEST_IGNORE(); 59035375f98Sopenharmony_ci#else 59135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 59235375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f, 2.0f); 59335375f98Sopenharmony_ci VERIFY_FAILS_END 59435375f98Sopenharmony_ci#endif 59535375f98Sopenharmony_ci} 59635375f98Sopenharmony_ci 59735375f98Sopenharmony_civoid testFloatsNotLessOrEqualNanActual(void) 59835375f98Sopenharmony_ci{ 59935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 60035375f98Sopenharmony_ci TEST_IGNORE(); 60135375f98Sopenharmony_ci#else 60235375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 60335375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f, 0.0f / f_zero); 60435375f98Sopenharmony_ci VERIFY_FAILS_END 60535375f98Sopenharmony_ci#endif 60635375f98Sopenharmony_ci} 60735375f98Sopenharmony_ci 60835375f98Sopenharmony_civoid testFloatsNotLessOrEqualNanThreshold(void) 60935375f98Sopenharmony_ci{ 61035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 61135375f98Sopenharmony_ci TEST_IGNORE(); 61235375f98Sopenharmony_ci#else 61335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 61435375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(0.0f / f_zero, 1.0f); 61535375f98Sopenharmony_ci VERIFY_FAILS_END 61635375f98Sopenharmony_ci#endif 61735375f98Sopenharmony_ci} 61835375f98Sopenharmony_ci 61935375f98Sopenharmony_civoid testFloatsLessOrEqualNanBoth(void) 62035375f98Sopenharmony_ci{ 62135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 62235375f98Sopenharmony_ci TEST_IGNORE(); 62335375f98Sopenharmony_ci#else 62435375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero); 62535375f98Sopenharmony_ci#endif 62635375f98Sopenharmony_ci} 62735375f98Sopenharmony_ci 62835375f98Sopenharmony_civoid testFloatsNotLessOrEqualInf(void) 62935375f98Sopenharmony_ci{ 63035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 63135375f98Sopenharmony_ci TEST_IGNORE(); 63235375f98Sopenharmony_ci#else 63335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 63435375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f, 1.0f / f_zero); 63535375f98Sopenharmony_ci VERIFY_FAILS_END 63635375f98Sopenharmony_ci#endif 63735375f98Sopenharmony_ci} 63835375f98Sopenharmony_ci 63935375f98Sopenharmony_civoid testFloatsNotLessOrEqualNegInf(void) 64035375f98Sopenharmony_ci{ 64135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 64235375f98Sopenharmony_ci TEST_IGNORE(); 64335375f98Sopenharmony_ci#else 64435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 64535375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(-1.0f / f_zero, 1.0f); 64635375f98Sopenharmony_ci VERIFY_FAILS_END 64735375f98Sopenharmony_ci#endif 64835375f98Sopenharmony_ci} 64935375f98Sopenharmony_ci 65035375f98Sopenharmony_civoid testFloatsLessOrEqualBothInf(void) 65135375f98Sopenharmony_ci{ 65235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 65335375f98Sopenharmony_ci TEST_IGNORE(); 65435375f98Sopenharmony_ci#else 65535375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero); 65635375f98Sopenharmony_ci#endif 65735375f98Sopenharmony_ci} 65835375f98Sopenharmony_ci 65935375f98Sopenharmony_civoid testFloatsLessOrEqualBothNegInf(void) 66035375f98Sopenharmony_ci{ 66135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 66235375f98Sopenharmony_ci TEST_IGNORE(); 66335375f98Sopenharmony_ci#else 66435375f98Sopenharmony_ci TEST_ASSERT_LESS_OR_EQUAL_FLOAT(-1.0f / f_zero, -1.0f / f_zero); 66535375f98Sopenharmony_ci#endif 66635375f98Sopenharmony_ci} 66735375f98Sopenharmony_ci 66835375f98Sopenharmony_civoid testFloatIsPosInf1(void) 66935375f98Sopenharmony_ci{ 67035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 67135375f98Sopenharmony_ci TEST_IGNORE(); 67235375f98Sopenharmony_ci#else 67335375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_INF(2.0f / f_zero); 67435375f98Sopenharmony_ci#endif 67535375f98Sopenharmony_ci} 67635375f98Sopenharmony_ci 67735375f98Sopenharmony_civoid testFloatIsPosInf2(void) 67835375f98Sopenharmony_ci{ 67935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 68035375f98Sopenharmony_ci TEST_IGNORE(); 68135375f98Sopenharmony_ci#else 68235375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 68335375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f / f_zero); 68435375f98Sopenharmony_ci VERIFY_FAILS_END 68535375f98Sopenharmony_ci#endif 68635375f98Sopenharmony_ci} 68735375f98Sopenharmony_ci 68835375f98Sopenharmony_civoid testFloatIsNegInf1(void) 68935375f98Sopenharmony_ci{ 69035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 69135375f98Sopenharmony_ci TEST_IGNORE(); 69235375f98Sopenharmony_ci#else 69335375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NEG_INF(-3.0f / f_zero); 69435375f98Sopenharmony_ci#endif 69535375f98Sopenharmony_ci} 69635375f98Sopenharmony_ci 69735375f98Sopenharmony_civoid testFloatIsNegInf2(void) 69835375f98Sopenharmony_ci{ 69935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 70035375f98Sopenharmony_ci TEST_IGNORE(); 70135375f98Sopenharmony_ci#else 70235375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 70335375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(-3.0f / f_zero); 70435375f98Sopenharmony_ci VERIFY_FAILS_END 70535375f98Sopenharmony_ci#endif 70635375f98Sopenharmony_ci} 70735375f98Sopenharmony_ci 70835375f98Sopenharmony_civoid testFloatIsNotPosInf1(void) 70935375f98Sopenharmony_ci{ 71035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 71135375f98Sopenharmony_ci TEST_IGNORE(); 71235375f98Sopenharmony_ci#else 71335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 71435375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_INF(2.0f); 71535375f98Sopenharmony_ci VERIFY_FAILS_END 71635375f98Sopenharmony_ci#endif 71735375f98Sopenharmony_ci} 71835375f98Sopenharmony_ci 71935375f98Sopenharmony_civoid testFloatIsNotPosInf2(void) 72035375f98Sopenharmony_ci{ 72135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 72235375f98Sopenharmony_ci TEST_IGNORE(); 72335375f98Sopenharmony_ci#else 72435375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f); 72535375f98Sopenharmony_ci#endif 72635375f98Sopenharmony_ci} 72735375f98Sopenharmony_ci 72835375f98Sopenharmony_civoid testFloatIsNotNegInf(void) 72935375f98Sopenharmony_ci{ 73035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 73135375f98Sopenharmony_ci TEST_IGNORE(); 73235375f98Sopenharmony_ci#else 73335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 73435375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NEG_INF(-999.876f); 73535375f98Sopenharmony_ci VERIFY_FAILS_END 73635375f98Sopenharmony_ci#endif 73735375f98Sopenharmony_ci} 73835375f98Sopenharmony_ci 73935375f98Sopenharmony_civoid testFloatIsNan1(void) 74035375f98Sopenharmony_ci{ 74135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 74235375f98Sopenharmony_ci TEST_IGNORE(); 74335375f98Sopenharmony_ci#else 74435375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NAN(0.0f / f_zero); 74535375f98Sopenharmony_ci#endif 74635375f98Sopenharmony_ci} 74735375f98Sopenharmony_ci 74835375f98Sopenharmony_civoid testFloatIsNan2(void) 74935375f98Sopenharmony_ci{ 75035375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 75135375f98Sopenharmony_ci TEST_IGNORE(); 75235375f98Sopenharmony_ci#else 75335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 75435375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_NAN(0.0f / f_zero); 75535375f98Sopenharmony_ci VERIFY_FAILS_END 75635375f98Sopenharmony_ci#endif 75735375f98Sopenharmony_ci} 75835375f98Sopenharmony_ci 75935375f98Sopenharmony_civoid testFloatIsNotNan1(void) 76035375f98Sopenharmony_ci{ 76135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 76235375f98Sopenharmony_ci TEST_IGNORE(); 76335375f98Sopenharmony_ci#else 76435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 76535375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NAN(234.9f); 76635375f98Sopenharmony_ci VERIFY_FAILS_END 76735375f98Sopenharmony_ci#endif 76835375f98Sopenharmony_ci} 76935375f98Sopenharmony_ci 77035375f98Sopenharmony_civoid testFloatIsNotNan2(void) 77135375f98Sopenharmony_ci{ 77235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 77335375f98Sopenharmony_ci TEST_IGNORE(); 77435375f98Sopenharmony_ci#else 77535375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_NAN(234.9f); 77635375f98Sopenharmony_ci#endif 77735375f98Sopenharmony_ci} 77835375f98Sopenharmony_ci 77935375f98Sopenharmony_civoid testFloatInfIsNotNan(void) 78035375f98Sopenharmony_ci{ 78135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 78235375f98Sopenharmony_ci TEST_IGNORE(); 78335375f98Sopenharmony_ci#else 78435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 78535375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NAN(1.0f / f_zero); 78635375f98Sopenharmony_ci VERIFY_FAILS_END 78735375f98Sopenharmony_ci#endif 78835375f98Sopenharmony_ci} 78935375f98Sopenharmony_ci 79035375f98Sopenharmony_civoid testFloatNanIsNotInf(void) 79135375f98Sopenharmony_ci{ 79235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 79335375f98Sopenharmony_ci TEST_IGNORE(); 79435375f98Sopenharmony_ci#else 79535375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 79635375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_INF(0.0f / f_zero); 79735375f98Sopenharmony_ci VERIFY_FAILS_END 79835375f98Sopenharmony_ci#endif 79935375f98Sopenharmony_ci} 80035375f98Sopenharmony_ci 80135375f98Sopenharmony_civoid testFloatIsDeterminate1(void) 80235375f98Sopenharmony_ci{ 80335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 80435375f98Sopenharmony_ci TEST_IGNORE(); 80535375f98Sopenharmony_ci#else 80635375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_DETERMINATE(0.0f); 80735375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_DETERMINATE(123.3f); 80835375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_DETERMINATE(-88.3f); 80935375f98Sopenharmony_ci#endif 81035375f98Sopenharmony_ci} 81135375f98Sopenharmony_ci 81235375f98Sopenharmony_civoid testFloatIsDeterminate2(void) 81335375f98Sopenharmony_ci{ 81435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 81535375f98Sopenharmony_ci TEST_IGNORE(); 81635375f98Sopenharmony_ci#else 81735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 81835375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-88.3f); 81935375f98Sopenharmony_ci VERIFY_FAILS_END 82035375f98Sopenharmony_ci#endif 82135375f98Sopenharmony_ci} 82235375f98Sopenharmony_ci 82335375f98Sopenharmony_civoid testFloatIsNotDeterminate1(void) 82435375f98Sopenharmony_ci{ 82535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 82635375f98Sopenharmony_ci TEST_IGNORE(); 82735375f98Sopenharmony_ci#else 82835375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(1.0f / f_zero); 82935375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-1.0f / f_zero); 83035375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(0.0f / f_zero); 83135375f98Sopenharmony_ci#endif 83235375f98Sopenharmony_ci} 83335375f98Sopenharmony_ci 83435375f98Sopenharmony_civoid testFloatIsNotDeterminate2(void) 83535375f98Sopenharmony_ci{ 83635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 83735375f98Sopenharmony_ci TEST_IGNORE(); 83835375f98Sopenharmony_ci#else 83935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 84035375f98Sopenharmony_ci TEST_ASSERT_FLOAT_IS_DETERMINATE(-1.0f / f_zero); 84135375f98Sopenharmony_ci VERIFY_FAILS_END 84235375f98Sopenharmony_ci#endif 84335375f98Sopenharmony_ci} 84435375f98Sopenharmony_ci 84535375f98Sopenharmony_civoid testFloatTraitFailsOnInvalidTrait(void) 84635375f98Sopenharmony_ci{ 84735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 84835375f98Sopenharmony_ci TEST_IGNORE(); 84935375f98Sopenharmony_ci#else 85035375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 85135375f98Sopenharmony_ci UnityAssertFloatSpecial(1.0f, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT); 85235375f98Sopenharmony_ci VERIFY_FAILS_END 85335375f98Sopenharmony_ci#endif 85435375f98Sopenharmony_ci} 85535375f98Sopenharmony_ci 85635375f98Sopenharmony_civoid testEqualFloatArrays(void) 85735375f98Sopenharmony_ci{ 85835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 85935375f98Sopenharmony_ci TEST_IGNORE(); 86035375f98Sopenharmony_ci#else 86135375f98Sopenharmony_ci float p0[] = {1.0f, -8.0f, 25.4f, -0.123f}; 86235375f98Sopenharmony_ci float p1[] = {1.0f, -8.0f, 25.4f, -0.123f}; 86335375f98Sopenharmony_ci float p2[] = {1.0f, -8.0f, 25.4f, -0.2f}; 86435375f98Sopenharmony_ci float p3[] = {1.0f, -23.0f, 25.0f, -0.26f}; 86535375f98Sopenharmony_ci 86635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 1); 86735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 4); 86835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 86935375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p2, 3); 87035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p3, 1); 87135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(NULL, NULL, 1); 87235375f98Sopenharmony_ci#endif 87335375f98Sopenharmony_ci} 87435375f98Sopenharmony_ci 87535375f98Sopenharmony_civoid testNotEqualFloatArraysExpectedNull(void) 87635375f98Sopenharmony_ci{ 87735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 87835375f98Sopenharmony_ci TEST_IGNORE(); 87935375f98Sopenharmony_ci#else 88035375f98Sopenharmony_ci float* p0 = NULL; 88135375f98Sopenharmony_ci float p1[] = {1.0f, 8.0f, 25.4f, 0.252f}; 88235375f98Sopenharmony_ci 88335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 88435375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 88535375f98Sopenharmony_ci VERIFY_FAILS_END 88635375f98Sopenharmony_ci#endif 88735375f98Sopenharmony_ci} 88835375f98Sopenharmony_ci 88935375f98Sopenharmony_civoid testNotEqualFloatArraysActualNull(void) 89035375f98Sopenharmony_ci{ 89135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 89235375f98Sopenharmony_ci TEST_IGNORE(); 89335375f98Sopenharmony_ci#else 89435375f98Sopenharmony_ci float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 89535375f98Sopenharmony_ci float* p1 = NULL; 89635375f98Sopenharmony_ci 89735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 89835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 89935375f98Sopenharmony_ci VERIFY_FAILS_END 90035375f98Sopenharmony_ci#endif 90135375f98Sopenharmony_ci} 90235375f98Sopenharmony_ci 90335375f98Sopenharmony_civoid testNotEqualFloatArrays1(void) 90435375f98Sopenharmony_ci{ 90535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 90635375f98Sopenharmony_ci TEST_IGNORE(); 90735375f98Sopenharmony_ci#else 90835375f98Sopenharmony_ci float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 90935375f98Sopenharmony_ci float p1[] = {1.0f, 8.0f, 25.4f, 0.252f}; 91035375f98Sopenharmony_ci 91135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 91235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 91335375f98Sopenharmony_ci VERIFY_FAILS_END 91435375f98Sopenharmony_ci#endif 91535375f98Sopenharmony_ci} 91635375f98Sopenharmony_ci 91735375f98Sopenharmony_civoid testNotEqualFloatArrays2(void) 91835375f98Sopenharmony_ci{ 91935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 92035375f98Sopenharmony_ci TEST_IGNORE(); 92135375f98Sopenharmony_ci#else 92235375f98Sopenharmony_ci float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 92335375f98Sopenharmony_ci float p1[] = {2.0f, 8.0f, 25.4f, 0.253f}; 92435375f98Sopenharmony_ci 92535375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 92635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 92735375f98Sopenharmony_ci VERIFY_FAILS_END 92835375f98Sopenharmony_ci#endif 92935375f98Sopenharmony_ci} 93035375f98Sopenharmony_ci 93135375f98Sopenharmony_civoid testNotEqualFloatArrays3(void) 93235375f98Sopenharmony_ci{ 93335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 93435375f98Sopenharmony_ci TEST_IGNORE(); 93535375f98Sopenharmony_ci#else 93635375f98Sopenharmony_ci float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 93735375f98Sopenharmony_ci float p1[] = {1.0f, 8.0f, 25.5f, 0.253f}; 93835375f98Sopenharmony_ci 93935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 94035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 94135375f98Sopenharmony_ci VERIFY_FAILS_END 94235375f98Sopenharmony_ci#endif 94335375f98Sopenharmony_ci} 94435375f98Sopenharmony_ci 94535375f98Sopenharmony_civoid testNotEqualFloatArraysNegative1(void) 94635375f98Sopenharmony_ci{ 94735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 94835375f98Sopenharmony_ci TEST_IGNORE(); 94935375f98Sopenharmony_ci#else 95035375f98Sopenharmony_ci float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f}; 95135375f98Sopenharmony_ci float p1[] = {-1.0f, -8.0f, -25.4f, -0.252f}; 95235375f98Sopenharmony_ci 95335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 95435375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 95535375f98Sopenharmony_ci VERIFY_FAILS_END 95635375f98Sopenharmony_ci#endif 95735375f98Sopenharmony_ci} 95835375f98Sopenharmony_ci 95935375f98Sopenharmony_civoid testNotEqualFloatArraysNegative2(void) 96035375f98Sopenharmony_ci{ 96135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 96235375f98Sopenharmony_ci TEST_IGNORE(); 96335375f98Sopenharmony_ci#else 96435375f98Sopenharmony_ci float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f}; 96535375f98Sopenharmony_ci float p1[] = {-2.0f, -8.0f, -25.4f, -0.253f}; 96635375f98Sopenharmony_ci 96735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 96835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 96935375f98Sopenharmony_ci VERIFY_FAILS_END 97035375f98Sopenharmony_ci#endif 97135375f98Sopenharmony_ci} 97235375f98Sopenharmony_ci 97335375f98Sopenharmony_civoid testNotEqualFloatArraysNegative3(void) 97435375f98Sopenharmony_ci{ 97535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 97635375f98Sopenharmony_ci TEST_IGNORE(); 97735375f98Sopenharmony_ci#else 97835375f98Sopenharmony_ci float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f}; 97935375f98Sopenharmony_ci float p1[] = {-1.0f, -8.0f, -25.5f, -0.253f}; 98035375f98Sopenharmony_ci 98135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 98235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 98335375f98Sopenharmony_ci VERIFY_FAILS_END 98435375f98Sopenharmony_ci#endif 98535375f98Sopenharmony_ci} 98635375f98Sopenharmony_ci 98735375f98Sopenharmony_civoid testEqualFloatArraysNaN(void) 98835375f98Sopenharmony_ci{ 98935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 99035375f98Sopenharmony_ci TEST_IGNORE(); 99135375f98Sopenharmony_ci#else 99235375f98Sopenharmony_ci float p0[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f}; 99335375f98Sopenharmony_ci float p1[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f}; 99435375f98Sopenharmony_ci 99535375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 99635375f98Sopenharmony_ci#endif 99735375f98Sopenharmony_ci} 99835375f98Sopenharmony_ci 99935375f98Sopenharmony_civoid testEqualFloatArraysInf(void) 100035375f98Sopenharmony_ci{ 100135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 100235375f98Sopenharmony_ci TEST_IGNORE(); 100335375f98Sopenharmony_ci#else 100435375f98Sopenharmony_ci float p0[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f}; 100535375f98Sopenharmony_ci float p1[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f}; 100635375f98Sopenharmony_ci 100735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 100835375f98Sopenharmony_ci#endif 100935375f98Sopenharmony_ci} 101035375f98Sopenharmony_ci 101135375f98Sopenharmony_civoid testNotEqualFloatArraysLengthZero(void) 101235375f98Sopenharmony_ci{ 101335375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 101435375f98Sopenharmony_ci TEST_IGNORE(); 101535375f98Sopenharmony_ci#else 101635375f98Sopenharmony_ci float p0[1] = {0.0f}; 101735375f98Sopenharmony_ci float p1[1] = {0.0f}; 101835375f98Sopenharmony_ci 101935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 102035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 0); 102135375f98Sopenharmony_ci VERIFY_FAILS_END 102235375f98Sopenharmony_ci#endif 102335375f98Sopenharmony_ci} 102435375f98Sopenharmony_ci 102535375f98Sopenharmony_civoid testFloatArraysWithin(void) 102635375f98Sopenharmony_ci{ 102735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 102835375f98Sopenharmony_ci TEST_IGNORE(); 102935375f98Sopenharmony_ci#else 103035375f98Sopenharmony_ci float p0[] = {1.0f, -8.0f, 25.4f, -0.123f}; 103135375f98Sopenharmony_ci float p1[] = {1.0f, -8.0f, 25.4f, -0.123f}; 103235375f98Sopenharmony_ci float p2[] = {1.0f, -8.0f, 25.4f, -0.2f}; 103335375f98Sopenharmony_ci float p3[] = {1.0f, -23.0f, 25.0f, -0.26f}; 103435375f98Sopenharmony_ci float p4[] = {2.0f, -9.0f, 26.2f, 0.26f}; 103535375f98Sopenharmony_ci float p5[] = {-1.0f, -7.0f, 29.0f, 2.6f}; 103635375f98Sopenharmony_ci 103735375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, p0, p0, 1); 103835375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, p0, p0, 4); 103935375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, p0, p1, 4); 104035375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, p0, p2, 3); 104135375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, p0, p3, 1); 104235375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, p0, p4, 1); 104335375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, p0, p4, 4); 104435375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(2.0f, p0, p5, 1); 104535375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(2.0f, p0, p5, 2); 104635375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(1.0f, NULL, NULL, 1); 104735375f98Sopenharmony_ci#endif 104835375f98Sopenharmony_ci} 104935375f98Sopenharmony_ci 105035375f98Sopenharmony_civoid testFloatArraysWithinUnusualDelta(void) 105135375f98Sopenharmony_ci{ 105235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 105335375f98Sopenharmony_ci TEST_IGNORE(); 105435375f98Sopenharmony_ci#else 105535375f98Sopenharmony_ci float p0[] = {(float)-INFINITY, -8.0f, 25.4f, -0.123f}; 105635375f98Sopenharmony_ci float p1[] = {(float)INFINITY, 10.1f}; 105735375f98Sopenharmony_ci 105835375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(INFINITY, p0, p1, 2); 105935375f98Sopenharmony_ci 106035375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 106135375f98Sopenharmony_ci TEST_ASSERT_FLOAT_ARRAY_WITHIN(NAN, p0, p0, 4); 106235375f98Sopenharmony_ci VERIFY_FAILS_END 106335375f98Sopenharmony_ci#endif 106435375f98Sopenharmony_ci} 106535375f98Sopenharmony_ci 106635375f98Sopenharmony_civoid testEqualFloatEachEqual(void) 106735375f98Sopenharmony_ci{ 106835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 106935375f98Sopenharmony_ci TEST_IGNORE(); 107035375f98Sopenharmony_ci#else 107135375f98Sopenharmony_ci float p0[] = {1.0f, 1.0f, 1.0f, 1.0f}; 107235375f98Sopenharmony_ci float p1[] = {-0.123f, -0.123f, -0.123f, -0.123f}; 107335375f98Sopenharmony_ci float p2[] = {25.4f, 25.4f, 25.4f, -0.2f}; 107435375f98Sopenharmony_ci float p3[] = {1.0f, -23.0f, 25.0f, -0.26f}; 107535375f98Sopenharmony_ci 107635375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 1); 107735375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4); 107835375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(-0.123f, p1, 4); 107935375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(25.4f, p2, 3); 108035375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p3, 1); 108135375f98Sopenharmony_ci#endif 108235375f98Sopenharmony_ci} 108335375f98Sopenharmony_ci 108435375f98Sopenharmony_civoid testNotEqualFloatEachEqualActualNull(void) 108535375f98Sopenharmony_ci{ 108635375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 108735375f98Sopenharmony_ci TEST_IGNORE(); 108835375f98Sopenharmony_ci#else 108935375f98Sopenharmony_ci float* p0 = NULL; 109035375f98Sopenharmony_ci 109135375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 109235375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(5, p0, 4); 109335375f98Sopenharmony_ci VERIFY_FAILS_END 109435375f98Sopenharmony_ci#endif 109535375f98Sopenharmony_ci} 109635375f98Sopenharmony_ci 109735375f98Sopenharmony_civoid testNotEqualFloatEachEqual1(void) 109835375f98Sopenharmony_ci{ 109935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 110035375f98Sopenharmony_ci TEST_IGNORE(); 110135375f98Sopenharmony_ci#else 110235375f98Sopenharmony_ci float p0[] = {0.253f, 8.0f, 0.253f, 0.253f}; 110335375f98Sopenharmony_ci 110435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 110535375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(0.253f, p0, 4); 110635375f98Sopenharmony_ci VERIFY_FAILS_END 110735375f98Sopenharmony_ci#endif 110835375f98Sopenharmony_ci} 110935375f98Sopenharmony_ci 111035375f98Sopenharmony_civoid testNotEqualFloatEachEqual2(void) 111135375f98Sopenharmony_ci{ 111235375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 111335375f98Sopenharmony_ci TEST_IGNORE(); 111435375f98Sopenharmony_ci#else 111535375f98Sopenharmony_ci float p0[] = {8.0f, 8.0f, 8.0f, 0.253f}; 111635375f98Sopenharmony_ci 111735375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 111835375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(8.0f, p0, 4); 111935375f98Sopenharmony_ci VERIFY_FAILS_END 112035375f98Sopenharmony_ci#endif 112135375f98Sopenharmony_ci} 112235375f98Sopenharmony_ci 112335375f98Sopenharmony_civoid testNotEqualFloatEachEqual3(void) 112435375f98Sopenharmony_ci{ 112535375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 112635375f98Sopenharmony_ci TEST_IGNORE(); 112735375f98Sopenharmony_ci#else 112835375f98Sopenharmony_ci float p0[] = {1.0f, 1.0f, 1.0f, 0.253f}; 112935375f98Sopenharmony_ci 113035375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 113135375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4); 113235375f98Sopenharmony_ci VERIFY_FAILS_END 113335375f98Sopenharmony_ci#endif 113435375f98Sopenharmony_ci} 113535375f98Sopenharmony_ci 113635375f98Sopenharmony_civoid testNotEqualFloatEachEqualNegative1(void) 113735375f98Sopenharmony_ci{ 113835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 113935375f98Sopenharmony_ci TEST_IGNORE(); 114035375f98Sopenharmony_ci#else 114135375f98Sopenharmony_ci float p0[] = {-1.0f, -0.253f, -0.253f, -0.253f}; 114235375f98Sopenharmony_ci 114335375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 114435375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(-0.253f, p0, 4); 114535375f98Sopenharmony_ci VERIFY_FAILS_END 114635375f98Sopenharmony_ci#endif 114735375f98Sopenharmony_ci} 114835375f98Sopenharmony_ci 114935375f98Sopenharmony_civoid testNotEqualFloatEachEqualNegative2(void) 115035375f98Sopenharmony_ci{ 115135375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 115235375f98Sopenharmony_ci TEST_IGNORE(); 115335375f98Sopenharmony_ci#else 115435375f98Sopenharmony_ci float p0[] = {-25.4f, -8.0f, -25.4f, -25.4f}; 115535375f98Sopenharmony_ci 115635375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 115735375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(-25.4f, p0, 4); 115835375f98Sopenharmony_ci VERIFY_FAILS_END 115935375f98Sopenharmony_ci#endif 116035375f98Sopenharmony_ci} 116135375f98Sopenharmony_ci 116235375f98Sopenharmony_civoid testNotEqualFloatEachEqualNegative3(void) 116335375f98Sopenharmony_ci{ 116435375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 116535375f98Sopenharmony_ci TEST_IGNORE(); 116635375f98Sopenharmony_ci#else 116735375f98Sopenharmony_ci float p0[] = {-8.0f, -8.0f, -8.0f, -0.253f}; 116835375f98Sopenharmony_ci 116935375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 117035375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(-8.0f, p0, 4); 117135375f98Sopenharmony_ci VERIFY_FAILS_END 117235375f98Sopenharmony_ci#endif 117335375f98Sopenharmony_ci} 117435375f98Sopenharmony_ci 117535375f98Sopenharmony_civoid testEqualFloatEachEqualNaN(void) 117635375f98Sopenharmony_ci{ 117735375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 117835375f98Sopenharmony_ci TEST_IGNORE(); 117935375f98Sopenharmony_ci#else 118035375f98Sopenharmony_ci float p0[] = {0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero}; 118135375f98Sopenharmony_ci 118235375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f / f_zero, p0, 4); 118335375f98Sopenharmony_ci#endif 118435375f98Sopenharmony_ci} 118535375f98Sopenharmony_ci 118635375f98Sopenharmony_civoid testEqualFloatEachEqualInf(void) 118735375f98Sopenharmony_ci{ 118835375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 118935375f98Sopenharmony_ci TEST_IGNORE(); 119035375f98Sopenharmony_ci#else 119135375f98Sopenharmony_ci float p0[] = {1.0f / f_zero, 1.0f / f_zero, 25.4f, 0.253f}; 119235375f98Sopenharmony_ci 119335375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f / f_zero, p0, 2); 119435375f98Sopenharmony_ci#endif 119535375f98Sopenharmony_ci} 119635375f98Sopenharmony_ci 119735375f98Sopenharmony_civoid testNotEqualFloatEachEqualLengthZero(void) 119835375f98Sopenharmony_ci{ 119935375f98Sopenharmony_ci#ifdef UNITY_EXCLUDE_FLOAT 120035375f98Sopenharmony_ci TEST_IGNORE(); 120135375f98Sopenharmony_ci#else 120235375f98Sopenharmony_ci float p0[1] = {0.0f}; 120335375f98Sopenharmony_ci 120435375f98Sopenharmony_ci EXPECT_ABORT_BEGIN 120535375f98Sopenharmony_ci TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f, p0, 0); 120635375f98Sopenharmony_ci VERIFY_FAILS_END 120735375f98Sopenharmony_ci#endif 120835375f98Sopenharmony_ci} 120935375f98Sopenharmony_ci 121035375f98Sopenharmony_civoid testFloatPrinting(void) 121135375f98Sopenharmony_ci{ 121235375f98Sopenharmony_ci#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_INCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY) 121335375f98Sopenharmony_ci TEST_IGNORE(); 121435375f98Sopenharmony_ci#else 121535375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("0", 0.0f); 121635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("4.99e-07", 0.000000499f); 121735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("0.1004695", 0.100469499f); 121835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("2", 1.9999995f); /*Rounding to int place*/ 121935375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("1", 1.0f); 122035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("1.25", 1.25f); 122135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("7.999999", 7.999999f); /*Not rounding*/ 122235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("16.00002", 16.00002f); 122335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("16.00004", 16.00004f); 122435375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("16.00006", 16.00006f); 122535375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("9999999", 9999999.0f); /*Last full print integer*/ 122635375f98Sopenharmony_ci 122735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-0", -0.0f); 122835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-4.99e-07", -0.000000499f); 122935375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.1004695", -0.100469499f); 123035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-2", -1.9999995f); /*Rounding to int place*/ 123135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-1", -1.0f); 123235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.25", -1.25f); 123335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-7.999999", -7.999999f); /*Not rounding*/ 123435375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.00002", -16.00002f); 123535375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.00004", -16.00004f); 123635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.00006", -16.00006f); 123735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-9999999", -9999999.0f); /*Last full print integer*/ 123835375f98Sopenharmony_ci 123935375f98Sopenharmony_ci /* Fails, prints "4.294968e+09" due to FP math imprecision 124035375f98Sopenharmony_ci * TEST_ASSERT_EQUAL_PRINT_FLOATING("4.294967e+09", 4294967296.0f); */ 124135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("5e+09", 5000000000.0f); 124235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("8e+09", 8.0e+09f); 124335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("8.309999e+09", 8309999104.0f); 124435375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("1e+10", 1.0e+10f); 124535375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("1e+10", 10000000000.0f); 124635375f98Sopenharmony_ci /* Some compilers have trouble with inexact float constants, a float cast works generally */ 124735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("1.000055e+10", (float)1.000055e+10f); 124835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("1.1e+38", (float)1.10000005e+38f); 124935375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("1.635299e+10", 1.63529943e+10f); 125035375f98Sopenharmony_ci /* Fails, prints "3.402824e+38" due to FP math imprecision 125135375f98Sopenharmony_ci * TEST_ASSERT_EQUAL_PRINT_FLOATING("3.402823e+38", 3.40282346638e38f); */ 125235375f98Sopenharmony_ci 125335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-1e+10", -1.0e+10f); 125435375f98Sopenharmony_ci /* Fails, prints "-3.402824e+38" due to FP math imprecision 125535375f98Sopenharmony_ci * TEST_ASSERT_EQUAL_PRINT_FLOATING("-3.402823e+38", -3.40282346638e38f); */ 125635375f98Sopenharmony_ci#endif 125735375f98Sopenharmony_ci} 125835375f98Sopenharmony_ci 125935375f98Sopenharmony_civoid testFloatPrintingRoundTiesToEven(void) 126035375f98Sopenharmony_ci{ 126135375f98Sopenharmony_ci#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_INCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY) 126235375f98Sopenharmony_ci TEST_IGNORE(); 126335375f98Sopenharmony_ci#else 126435375f98Sopenharmony_ci #ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO 126535375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0004882813", 0.00048828125f); 126635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("488281.3", 488281.25f); 126735375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("5.000001e-07", 0.00000050000005f); 126835375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-5.000001e-07", -0.00000050000005f); 126935375f98Sopenharmony_ci #else /* Default to Round ties to even */ 127035375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0004882812", 0.00048828125f); 127135375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("488281.2", 488281.25f); 127235375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("5e-07", 0.00000050000005f); 127335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-5e-07", -0.00000050000005f); 127435375f98Sopenharmony_ci #endif 127535375f98Sopenharmony_ci#endif 127635375f98Sopenharmony_ci} 127735375f98Sopenharmony_ci 127835375f98Sopenharmony_civoid testFloatPrintingInfinityAndNaN(void) 127935375f98Sopenharmony_ci{ 128035375f98Sopenharmony_ci#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY) 128135375f98Sopenharmony_ci TEST_IGNORE(); 128235375f98Sopenharmony_ci#else 128335375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("inf", 1.0f / f_zero); 128435375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("-inf", -1.0f / f_zero); 128535375f98Sopenharmony_ci 128635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING("nan", 0.0f / f_zero); 128735375f98Sopenharmony_ci#endif 128835375f98Sopenharmony_ci} 128935375f98Sopenharmony_ci 129035375f98Sopenharmony_ci#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY) 129135375f98Sopenharmony_ci#ifdef UNITY_INCLUDE_DOUBLE 129235375f98Sopenharmony_cistatic void printFloatValue(float f) 129335375f98Sopenharmony_ci{ 129435375f98Sopenharmony_ci char expected[18]; 129535375f98Sopenharmony_ci 129635375f98Sopenharmony_ci startPutcharSpy(); 129735375f98Sopenharmony_ci UnityPrintFloat(f); 129835375f98Sopenharmony_ci 129935375f98Sopenharmony_ci sprintf(expected, "%.9g", f); 130035375f98Sopenharmony_ci /* We print all NaN's as "nan", not "-nan" */ 130135375f98Sopenharmony_ci if (strcmp(expected, "-nan") == 0) strcpy(expected, "nan"); 130235375f98Sopenharmony_ci 130335375f98Sopenharmony_ci if (strcmp(expected, getBufferPutcharSpy())) 130435375f98Sopenharmony_ci { 130535375f98Sopenharmony_ci /* Fail with diagnostic printing */ 130635375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, f); 130735375f98Sopenharmony_ci } 130835375f98Sopenharmony_ci} 130935375f98Sopenharmony_ci#else 131035375f98Sopenharmony_cistatic void printFloatValue(float f) 131135375f98Sopenharmony_ci{ 131235375f98Sopenharmony_ci char expected[18]; 131335375f98Sopenharmony_ci char expected_lower[18]; 131435375f98Sopenharmony_ci char expected_lower2[18]; 131535375f98Sopenharmony_ci char expected_lower3[18]; 131635375f98Sopenharmony_ci char expected_higher[18]; 131735375f98Sopenharmony_ci char expected_higher2[18]; 131835375f98Sopenharmony_ci char expected_higher3[18]; 131935375f98Sopenharmony_ci 132035375f98Sopenharmony_ci startPutcharSpy(); 132135375f98Sopenharmony_ci UnityPrintFloat(f); 132235375f98Sopenharmony_ci 132335375f98Sopenharmony_ci sprintf(expected, "%.7g", f); 132435375f98Sopenharmony_ci /* We print all NaN's as "nan", not "-nan" */ 132535375f98Sopenharmony_ci if (strcmp(expected, "-nan") == 0) strcpy(expected, "nan"); 132635375f98Sopenharmony_ci 132735375f98Sopenharmony_ci strcpy(expected_lower, expected); 132835375f98Sopenharmony_ci strcpy(expected_lower2, expected); 132935375f98Sopenharmony_ci strcpy(expected_lower3, expected); 133035375f98Sopenharmony_ci strcpy(expected_higher, expected); 133135375f98Sopenharmony_ci strcpy(expected_higher2, expected); 133235375f98Sopenharmony_ci strcpy(expected_higher3, expected); 133335375f98Sopenharmony_ci 133435375f98Sopenharmony_ci /* Allow for rounding differences in the last digit */ 133535375f98Sopenharmony_ci double lower = (double)f * 0.99999995; 133635375f98Sopenharmony_ci double higher = (double)f * 1.00000005; 133735375f98Sopenharmony_ci 133835375f98Sopenharmony_ci if(isfinite(lower)) sprintf(expected_lower, "%.7g", lower); 133935375f98Sopenharmony_ci if(isfinite(higher)) sprintf(expected_higher, "%.7g", higher); 134035375f98Sopenharmony_ci 134135375f98Sopenharmony_ci /* Outside [1,10000000] allow for relative error of +/-2.5e-7 */ 134235375f98Sopenharmony_ci if (f < 1.0 || f > 10000000) 134335375f98Sopenharmony_ci { 134435375f98Sopenharmony_ci double lower2 = (double)f * 0.99999985; 134535375f98Sopenharmony_ci double lower3 = (double)f * 0.99999975; 134635375f98Sopenharmony_ci double higher2 = (double)f * 1.00000015; 134735375f98Sopenharmony_ci double higher3 = (double)f * 1.00000025; 134835375f98Sopenharmony_ci 134935375f98Sopenharmony_ci if (isfinite(lower2)) sprintf(expected_lower2, "%.7g", lower2); 135035375f98Sopenharmony_ci if (isfinite(lower3)) sprintf(expected_lower3, "%.7g", lower3); 135135375f98Sopenharmony_ci if (isfinite(higher2)) sprintf(expected_higher2, "%.7g", higher2); 135235375f98Sopenharmony_ci if (isfinite(higher3)) sprintf(expected_higher3, "%.7g", higher3); 135335375f98Sopenharmony_ci } 135435375f98Sopenharmony_ci 135535375f98Sopenharmony_ci if (strcmp(expected, getBufferPutcharSpy()) != 0 && 135635375f98Sopenharmony_ci strcmp(expected_lower, getBufferPutcharSpy()) != 0 && 135735375f98Sopenharmony_ci strcmp(expected_lower2, getBufferPutcharSpy()) != 0 && 135835375f98Sopenharmony_ci strcmp(expected_lower3, getBufferPutcharSpy()) != 0 && 135935375f98Sopenharmony_ci strcmp(expected_higher, getBufferPutcharSpy()) != 0 && 136035375f98Sopenharmony_ci strcmp(expected_higher2, getBufferPutcharSpy()) != 0 && 136135375f98Sopenharmony_ci strcmp(expected_higher3, getBufferPutcharSpy()) != 0) 136235375f98Sopenharmony_ci { 136335375f98Sopenharmony_ci /* Fail with diagnostic printing */ 136435375f98Sopenharmony_ci TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, f); 136535375f98Sopenharmony_ci } 136635375f98Sopenharmony_ci} 136735375f98Sopenharmony_ci#endif 136835375f98Sopenharmony_ci#endif 136935375f98Sopenharmony_ci 137035375f98Sopenharmony_civoid testFloatPrintingRandomSamples(void) 137135375f98Sopenharmony_ci{ 137235375f98Sopenharmony_ci#if !defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) || !defined(USING_OUTPUT_SPY) 137335375f98Sopenharmony_ci TEST_IGNORE(); 137435375f98Sopenharmony_ci#else 137535375f98Sopenharmony_ci union { float f_value; uint32_t int_value; } u; 137635375f98Sopenharmony_ci 137735375f98Sopenharmony_ci /* These values are not covered by the MINSTD generator */ 137835375f98Sopenharmony_ci u.int_value = 0x00000000; printFloatValue(u.f_value); 137935375f98Sopenharmony_ci u.int_value = 0x80000000; printFloatValue(u.f_value); 138035375f98Sopenharmony_ci u.int_value = 0x7fffffff; printFloatValue(u.f_value); 138135375f98Sopenharmony_ci u.int_value = 0xffffffff; printFloatValue(u.f_value); 138235375f98Sopenharmony_ci 138335375f98Sopenharmony_ci uint32_t a = 1; 138435375f98Sopenharmony_ci for(int num_tested = 0; num_tested < 1000000; num_tested++) 138535375f98Sopenharmony_ci { 138635375f98Sopenharmony_ci /* MINSTD pseudo-random number generator */ 138735375f98Sopenharmony_ci a = (uint32_t)(((uint64_t)a * 48271u) % 2147483647u); 138835375f98Sopenharmony_ci 138935375f98Sopenharmony_ci /* MINSTD does not set the highest bit; test both possibilities */ 139035375f98Sopenharmony_ci u.int_value = a; printFloatValue(u.f_value); 139135375f98Sopenharmony_ci u.int_value = a | 0x80000000; printFloatValue(u.f_value); 139235375f98Sopenharmony_ci } 139335375f98Sopenharmony_ci#endif 139435375f98Sopenharmony_ci} 1395