valeri/test/dict.cpp

40 lines
842 B
C++
Raw Normal View History

2024-08-01 21:45:16 +00:00
#include "common.hpp"
#include "die.hpp"
2024-08-03 12:43:59 +00:00
#include "reader.hpp"
#include "test.hpp"
2024-08-01 21:45:16 +00:00
#include "writer.hpp"
2024-08-01 21:45:16 +00:00
StaticArena<64 * 1024 * 1024> arena;
TEST_CASE(dict_insert) {
auto d = DIEX(Dict::create(arena));
d = DIEX(d.insert(arena, 1, 2));
d = DIEX(d.insert(arena, 1, 3));
d = DIEX(d.insert(arena, 3, 3));
d = DIEX(d.insert(arena, 0, 4));
d = DIEX(d.insert(arena, 0, 5));
d = DIEX(d.insert(arena, 2, 6));
2024-08-03 01:54:53 +00:00
DIEX(arena.gc());
2024-08-02 22:27:36 +00:00
auto s = DIEX(write_one(arena, d));
2024-08-01 21:45:16 +00:00
2024-08-03 01:54:53 +00:00
DIEX(arena.gc());
2024-08-02 22:27:36 +00:00
ASSERT_EQUALS(s, "{0 5 1 3 2 6 3 3}");
2024-08-01 21:45:16 +00:00
}
2024-08-03 12:43:59 +00:00
TEST_CASE(dict_read) {
2024-08-03 15:02:09 +00:00
auto v = DIEX(read_one(arena, "{}"));
2024-08-03 12:43:59 +00:00
auto s = DIEX(write_one(arena, v));
2024-08-03 15:02:09 +00:00
ASSERT_EQUALS(s, "{}");
v = DIEX(read_one(arena, "{1 2 3 4}"));
s = DIEX(write_one(arena, v));
2024-08-03 12:43:59 +00:00
ASSERT_EQUALS(s, "{1 2 3 4}");
2024-08-03 17:53:14 +00:00
auto vv = DIEX(v.get(arena, 1));
ASSERT_EQUALS(vv, 2);
2024-08-03 12:43:59 +00:00
}