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