Update build and basic DS test framework.

This commit is contained in:
2017-12-21 14:02:49 -08:00
parent eb37973147
commit 8ea78af90b
5 changed files with 58 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
AM_CPPFLAGS = -Wall -Wextra -pedantic -Wshadow -Wpointer-arith -Wcast-align
AM_CPPFLAGS += -Wwrite-strings -Wmissing-declarations -Wno-long-long -Werror
AM_CPPFLAGS += -Wunused-variable -std=c++14 -D_XOPEN_SOURCE -O0 -g -I.
AM_CPPFLAGS += -Wunused-variable -std=c++17 -D_XOPEN_SOURCE -O0 -g -I.
AM_CPPFLAGS += -fno-elide-constructors -Weffc++
bin_PROGRAMS := ch01ex01 ch01ex03 ch01ex04 ch01ex05 ch01ex06

View File

@@ -1,5 +1,7 @@
#include <cassert>
#include <iostream>
#include <ods/simplist.h>
#include <ods/simpuset.h>
using namespace std;
@@ -12,6 +14,54 @@ check_simplist(void)
sl.add(1, 2);
sl.add(2, 3);
assert(sl.size() == 3);
sl.add(0, 4);
sl.add(1, 5);
sl.add(2, 6);
assert(sl.size() == 6);
int expected[6] = {4, 5, 6, 1, 2, 3};
for (size_t i = 0; i < 6; i++) {
assert(sl.get(i) == expected[i]);
}
bool caught = false;
try {
sl.add(8, 8);
} catch (std::invalid_argument) {
caught = true;
}
assert(caught);
assert(sl.get(2) == 6);
sl.remove(2);
assert(sl.get(2) == 1);
assert(sl.size() == 5);
sl.set(2, 6);
assert(sl.get(2) == 6);
// expected = {1, 2, 3, 4, 5, 6};
for (size_t i = 0; i < 6; i++) {
expected[i] = i+1;
}
for (size_t i = 0; i < 5; i++) {
sl.set(i, i+1);
}
sl.add(5, 6);
for (size_t i = 0; i < 6; i++) {
assert(sl.get(i) == expected[i]);
}
}
static void
check_simpuset(void)
{
ods::SimpUSet<int> us;
assert(us.add(1));
}
@@ -19,4 +69,6 @@ int
main(void)
{
check_simplist();
check_simpuset();
cout << "OK" << endl;
}