added new sanity checks and compile-time assertions to prevent errors

fixed stair-building issue
new test-cases
added elevator support
fixed/improved some walker modules
This commit is contained in:
2016-09-10 15:12:39 +02:00
parent 7baeecb3f9
commit 82f8828a04
26 changed files with 996 additions and 198 deletions

View File

@@ -60,6 +60,97 @@ TEST(RingBuffer, add) {
}
TEST(RingBuffer, peek) {
RingBuffer<int> buf(4);
buf.add(11);
ASSERT_EQ(11, buf.peek(0));
buf.add(13);
ASSERT_EQ(11, buf.peek(0));
ASSERT_EQ(13, buf.peek(1));
buf.add(10);
ASSERT_EQ(11, buf.peek(0));
ASSERT_EQ(13, buf.peek(1));
ASSERT_EQ(10, buf.peek(2));
buf.add(17);
ASSERT_EQ(11, buf.peek(0));
ASSERT_EQ(13, buf.peek(1));
ASSERT_EQ(10, buf.peek(2));
ASSERT_EQ(17, buf.peek(3));
buf.add(18);
ASSERT_EQ(18, buf.peek(0));
ASSERT_EQ(13, buf.peek(1));
ASSERT_EQ(10, buf.peek(2));
ASSERT_EQ(17, buf.peek(3));
buf.add(9);
ASSERT_EQ(18, buf.peek(0));
ASSERT_EQ( 9, buf.peek(1));
ASSERT_EQ(10, buf.peek(2));
ASSERT_EQ(17, buf.peek(3));
buf.add(88);
ASSERT_EQ(18, buf.peek(0));
ASSERT_EQ( 9, buf.peek(1));
ASSERT_EQ(88, buf.peek(2));
ASSERT_EQ(17, buf.peek(3));
buf.add(54);
ASSERT_EQ(18, buf.peek(0));
ASSERT_EQ( 9, buf.peek(1));
ASSERT_EQ(88, buf.peek(2));
ASSERT_EQ(54, buf.peek(3));
buf.add(1);
ASSERT_EQ( 1, buf.peek(0));
ASSERT_EQ( 9, buf.peek(1));
ASSERT_EQ(88, buf.peek(2));
ASSERT_EQ(54, buf.peek(3));
}
TEST(RingBuffer, contains) {
RingBuffer<int> buf(4);
ASSERT_FALSE(buf.contains(0));
buf.add(0);
ASSERT_TRUE(buf.contains(0));
ASSERT_FALSE(buf.contains(3));
buf.add(3);
ASSERT_TRUE(buf.contains(0));
ASSERT_TRUE(buf.contains(3));
ASSERT_FALSE(buf.contains(7));
buf.add(7);
ASSERT_TRUE(buf.contains(0));
ASSERT_TRUE(buf.contains(3));
ASSERT_TRUE(buf.contains(7));
ASSERT_FALSE(buf.contains(8));
buf.add(8);
ASSERT_TRUE(buf.contains(0));
ASSERT_TRUE(buf.contains(3));
ASSERT_TRUE(buf.contains(7));
ASSERT_TRUE(buf.contains(8));
ASSERT_FALSE(buf.contains(11));
buf.add(11);
ASSERT_FALSE(buf.contains(0));
ASSERT_TRUE(buf.contains(3));
ASSERT_TRUE(buf.contains(7));
ASSERT_TRUE(buf.contains(8));
ASSERT_TRUE(buf.contains(11));
}
TEST(RingBuffer, iterator) {
RingBuffer<int> buf(4);