Ignore:
Timestamp:
Jul 23, 2013, 8:14:41 AM (8 years ago)
Author:
sam
Message:

base: Array::Remove(int) now accepts a negative index to remove elements
from the end. Also added Array::RemoveSwap() for faster removes at the
expense of element ordering.

File:
1 edited

Legend:

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

    r2532 r2809  
    8484        a.Remove(1);
    8585
     86        LOLUNIT_ASSERT_EQUAL(a.Count(), 3);
    8687        LOLUNIT_ASSERT_EQUAL(a[0], 0);
    8788        LOLUNIT_ASSERT_EQUAL(a[1], 2);
    8889        LOLUNIT_ASSERT_EQUAL(a[2], 3);
     90
     91        Array<int> b;
     92        b << 0 << 1 << 2 << 3;
     93        b.Remove(-2);
     94
     95        LOLUNIT_ASSERT_EQUAL(b.Count(), 3);
     96        LOLUNIT_ASSERT_EQUAL(b[0], 0);
     97        LOLUNIT_ASSERT_EQUAL(b[1], 1);
     98        LOLUNIT_ASSERT_EQUAL(b[2], 3);
     99    }
     100
     101    LOLUNIT_TEST(ArrayRemoveSwap)
     102    {
     103        Array<int> a;
     104        a << 0 << 1 << 2 << 3;
     105        a.RemoveSwap(1);
     106
     107        LOLUNIT_ASSERT_EQUAL(a.Count(), 3);
     108        LOLUNIT_ASSERT_EQUAL(a[0], 0);
     109        LOLUNIT_ASSERT_EQUAL(a[1], 3);
     110        LOLUNIT_ASSERT_EQUAL(a[2], 2);
     111
     112        Array<int> b;
     113        b << 0 << 1 << 2 << 3;
     114        b.Remove(1, 2);
     115
     116        LOLUNIT_ASSERT_EQUAL(b.Count(), 2);
     117        LOLUNIT_ASSERT_EQUAL(b[0], 0);
     118        LOLUNIT_ASSERT_EQUAL(b[1], 3);
    89119    }
    90120#endif
Note: See TracChangeset for help on using the changeset viewer.