Changeset 3513


Ignore:
Timestamp:
May 22, 2009, 3:23:09 PM (11 years ago)
Author:
Sam Hocevar
Message:

Add more unit tests for the dirty rectangles.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/tests/dirty.cpp

    r3494 r3513  
    2626    CPPUNIT_TEST_SUITE(DirtyTest);
    2727    CPPUNIT_TEST(test_create);
    28     CPPUNIT_TEST(test_put_char);
     28    CPPUNIT_TEST(test_put_char_dirty);
     29    CPPUNIT_TEST(test_put_char_not_dirty);
     30    CPPUNIT_TEST(test_box);
    2931    CPPUNIT_TEST_SUITE_END();
    3032
     
    6163    }
    6264
    63     void test_put_char()
     65    void test_put_char_dirty()
    6466    {
    6567        caca_canvas_t *cv;
     
    138140    }
    139141
     142    void test_put_char_not_dirty()
     143    {
     144        caca_canvas_t *cv;
     145        int i;
     146
     147        cv = caca_create_canvas(WIDTH, HEIGHT);
     148
     149        /* Check that pasting the same character does not cause
     150         * a dirty rectangle to be created. */
     151        caca_put_char(cv, 7, 3, 'x');
     152        caca_clear_dirty_rect_list(cv);
     153        caca_put_char(cv, 7, 3, 'x');
     154        i = caca_get_dirty_rect_count(cv);
     155        CPPUNIT_ASSERT_EQUAL(i, 0);
     156
     157        caca_clear_canvas(cv);
     158        caca_put_char(cv, 7, 3, 0x2f06 /* ⼆ */);
     159        caca_clear_dirty_rect_list(cv);
     160        caca_put_char(cv, 7, 3, 0x2f06 /* ⼆ */);
     161        i = caca_get_dirty_rect_count(cv);
     162        CPPUNIT_ASSERT_EQUAL(i, 0);
     163    }
     164
     165    void test_box()
     166    {
     167        caca_canvas_t *cv;
     168        int i, dx, dy, dw, dh;
     169
     170        cv = caca_create_canvas(WIDTH, HEIGHT);
     171        caca_clear_dirty_rect_list(cv);
     172
     173        caca_fill_box(cv, 7, 3, 14, 9, 'x');
     174        i = caca_get_dirty_rect_count(cv);
     175        CPPUNIT_ASSERT_EQUAL(i, 1);
     176        caca_get_dirty_rect(cv, 0, &dx, &dy, &dw, &dh);
     177        CPPUNIT_ASSERT_EQUAL(dx, 7);
     178        CPPUNIT_ASSERT_EQUAL(dy, 3);
     179        CPPUNIT_ASSERT_EQUAL(dw, 14);
     180        CPPUNIT_ASSERT_EQUAL(dh, 9);
     181
     182        caca_clear_dirty_rect_list(cv);
     183        caca_fill_box(cv, 7, 3, 14, 9, 'x');
     184        i = caca_get_dirty_rect_count(cv);
     185        CPPUNIT_ASSERT_EQUAL(i, 0);
     186    }
     187
    140188private:
    141189    static int const WIDTH = 80, HEIGHT = 50;
Note: See TracChangeset for help on using the changeset viewer.