Changeset 1002 for trunk/test


Ignore:
Timestamp:
Oct 3, 2011, 1:36:28 AM (8 years ago)
Author:
sam
Message:

core: implement floor() and ceil() for real numbers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/real.cpp

    r1001 r1002  
    240240    LOLUNIT_TEST(AsinAcos)
    241241    {
    242         double tests[14] =
     242        double tests[] =
    243243        {
    244244            -1024.0, -1023.0, -513.0, -512.0, -511.0, -1.0, -0.0,
     
    246246        };
    247247
    248         for (int n = 0; n < 14; n++)
     248        for (unsigned int n = 0; n < sizeof(tests) / sizeof(*tests); n++)
    249249        {
    250250            double a = tests[n] / 1024;
     
    257257        }
    258258    }
     259
     260    LOLUNIT_TEST(FloorCeil)
     261    {
     262        double tests[] =
     263        {
     264            -2.0,  -2.0, -2.0,
     265            -1.5,  -2.0, -1.0,
     266            -1.0,  -1.0, -1.0,
     267            -0.0,  -0.0, -0.0,
     268             0.0,   0.0,  0.0,
     269             0.25,  0.0,  1.0,
     270             0.375, 0.0,  1.0,
     271             0.5,   0.0,  1.0,
     272             1.0,   1.0,  1.0,
     273             1.5,   1.0,  2.0,
     274             2.0,   2.0,  2.0,
     275             2.5,   2.0,  3.0,
     276             3.0,   3.0,  3.0,
     277            8192.0,     8192.0, 8192.0,
     278            8192.03125, 8192.0, 8193.0,
     279            8192.5,     8192.0, 8193.0,
     280            8193.0,     8193.0, 8193.0,
     281            549755813888.0,     549755813888.0, 549755813888.0,
     282            549755813888.03125, 549755813888.0, 549755813889.0,
     283            549755813888.5,     549755813888.0, 549755813889.0,
     284            549755813889.0,     549755813889.0, 549755813889.0,
     285        };
     286
     287        for (unsigned int n = 0; n < sizeof(tests) / sizeof(*tests); n += 3)
     288        {
     289            double a0 = floor((real)tests[n]);
     290            double b0 = tests[n + 1];
     291            double a1 = ceil((real)tests[n]);
     292            double b1 = tests[n + 2];
     293
     294            LOLUNIT_ASSERT_EQUAL(b0, a0);
     295            LOLUNIT_ASSERT_EQUAL(b1, a1);
     296        }
     297    }
    259298};
    260299
Note: See TracChangeset for help on using the changeset viewer.