Example #1
0
TEST_F(BufferTest, pos_diff_empty) {
    struct mem_buffer_pos b;
    mem_buffer_begin(&b, &m_buffer);

    struct mem_buffer_pos e;
    mem_buffer_begin(&e, &m_buffer);

    EXPECT_EQ(0, mem_pos_diff(&b, &e));
    EXPECT_EQ(0, mem_pos_diff(&e, &b));
}
Example #2
0
TEST_F(BufferTest, pos_seek_fwd_multi_trunk) {
    struct mem_buffer_trunk * t1 = append_trunk("a");
    struct mem_buffer_trunk * t2 = append_trunk("b");
    struct mem_buffer_trunk * t3 = append_trunk("c");

    struct mem_buffer_pos p;
    mem_buffer_begin(&p, &m_buffer);
    EXPECT_TRUE(t1 == p.m_trunk);
    EXPECT_EQ((size_t)0, p.m_pos_in_trunk);
    EXPECT_EQ('a', mem_pos_data(&p));

    EXPECT_EQ(1, mem_pos_seek(&p, 1));
    EXPECT_TRUE(t2 == p.m_trunk);
    EXPECT_EQ((size_t)0, p.m_pos_in_trunk);
    EXPECT_EQ('b', mem_pos_data(&p));

    EXPECT_EQ(1, mem_pos_seek(&p, 1));
    EXPECT_TRUE(t3 == p.m_trunk);
    EXPECT_EQ((size_t)0, p.m_pos_in_trunk);
    EXPECT_EQ('c', mem_pos_data(&p));

    EXPECT_EQ(1, mem_pos_seek(&p, 1));
    EXPECT_TRUE(NULL == p.m_trunk);
    EXPECT_EQ((size_t)0, p.m_pos_in_trunk);
    EXPECT_FALSE(mem_pos_valide(&p));
}
Example #3
0
void mem_pos_at(struct mem_buffer_pos * pos, struct mem_buffer * buffer, size_t n) {
    assert(pos);
    assert(buffer);

    mem_buffer_begin(pos, buffer);
    mem_pos_seek(pos, n);
}
Example #4
0
TEST_F(BufferTest, pos_valid_head) {
    append_string("a");

    struct mem_buffer_pos l;
    mem_buffer_begin(&l, &m_buffer);

    EXPECT_EQ(1, mem_pos_valide(&l));
}
Example #5
0
TEST_F(BufferTest, pos_begin_end_eq) {
    struct mem_buffer_pos l;
    mem_buffer_begin(&l, &m_buffer);

    struct mem_buffer_pos r;
    mem_buffer_end(&r, &m_buffer);

    EXPECT_EQ(1, mem_pos_eq(&l, &r));
}
Example #6
0
TEST_F(BufferTest, pos_seek_fwd_to_last) {
    struct mem_buffer_trunk * t1 = append_trunk("abc");

    struct mem_buffer_pos p;
    mem_buffer_begin(&p, &m_buffer);
    EXPECT_EQ(2, mem_pos_seek(&p, 2));

    EXPECT_TRUE(t1 == p.m_trunk);
    EXPECT_EQ((size_t)2, p.m_pos_in_trunk);
}
Example #7
0
TEST_F(BufferTest, pos_seek_back_from_head) {
    struct mem_buffer_trunk * t1 = append_trunk("abc");

    struct mem_buffer_pos p;
    mem_buffer_begin(&p, &m_buffer);
    EXPECT_EQ(0, mem_pos_seek(&p, -2));

    EXPECT_TRUE(t1 == p.m_trunk);
    EXPECT_EQ((size_t)0, p.m_pos_in_trunk);
}
Example #8
0
TEST_F(BufferTest, pos_seek_fwd_empty) {
    struct mem_buffer_pos p;
    mem_buffer_begin(&p, &m_buffer);
    EXPECT_FALSE(mem_pos_valide(&p));

    EXPECT_EQ(0, mem_pos_seek(&p, 1));
    EXPECT_TRUE(NULL == p.m_trunk);
    EXPECT_EQ((size_t)0, p.m_pos_in_trunk);
    EXPECT_FALSE(mem_pos_valide(&p));
}
Example #9
0
TEST_F(BufferTest, pos_begin_end_ne) {
    append_string("a");

    struct mem_buffer_pos l;
    mem_buffer_begin(&l, &m_buffer);

    struct mem_buffer_pos r;
    mem_buffer_end(&r, &m_buffer);
    
    EXPECT_EQ(0, mem_pos_eq(&l, &r));
}
Example #10
0
TEST_F(BufferTest, pos_diff_basic) {
    append_trunk("abc");

    struct mem_buffer_pos b;
    mem_buffer_begin(&b, &m_buffer);

    struct mem_buffer_pos e;
    mem_buffer_end(&e, &m_buffer);

    EXPECT_EQ(3, mem_pos_diff(&b, &e));
    EXPECT_EQ(-3, mem_pos_diff(&e, &b));
}
Example #11
0
TEST_F(BufferTest, pos_begin_with_empty_trunk) {
    append_string("");
    append_string("");

    struct mem_buffer_pos l;
    mem_buffer_begin(&l, &m_buffer);

    struct mem_buffer_pos e;
    mem_buffer_end(&e, &m_buffer);

    EXPECT_TRUE(mem_pos_eq(&l, &e));
}
Example #12
0
TEST_F(BufferTest, pos_diff_multi_trunk_to_middle) {
    append_trunk("a");
    append_trunk("b");
    append_trunk("c");

    struct mem_buffer_pos b;
    mem_buffer_begin(&b, &m_buffer);

    struct mem_buffer_pos e;
    mem_pos_at(&e, &m_buffer, 1);

    EXPECT_EQ(1, mem_pos_diff(&b, &e));
    EXPECT_EQ(-1, mem_pos_diff(&e, &b));
}
Example #13
0
TEST_F(BufferTest, pos_diff_same_multi_trunk) {
    append_trunk("a");
    append_trunk("b");
    append_trunk("c");

    struct mem_buffer_pos b;
    mem_buffer_begin(&b, &m_buffer);

    struct mem_buffer_pos e;
    mem_buffer_end(&e, &m_buffer);

    EXPECT_EQ(3, mem_pos_diff(&b, &e));
    EXPECT_EQ(-3, mem_pos_diff(&e, &b));
}