| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- #include <iostream>
- #include "wrappedBuffer.hpp"
- #define FAILED(got, op, expt) {std::cout << __FILE__ << ":" << __LINE__ << ": failed asserting " << got << " " << op << " expected " << expt << std::endl; return false; }
- bool simpleTest()
- {
- WrappedBuffer<char, 5> test;
- if (test.toString().size() != 0)
- FAILED(test.toString().size(), "!=", 0);
- if (test.size() != 0)
- FAILED(test.size(), "!=", 0);
- test.put('a');
- if (test.size() != 1)
- FAILED(test.size(), "!=", 1);
- if (test.toString().size() != 1)
- FAILED(test.toString().size(), "!=", 1);
- if (test.toString() != "a")
- FAILED(test.toString(), "!=", "a");
- test.put('b');
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString().size() != 2)
- FAILED(test.toString().size(), "!=", 2);
- if (test.toString() != "ab")
- FAILED(test.toString(), "!=", "ab");
- test.put('c');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString().size() != 3)
- FAILED(test.toString().size(), "!=", 3);
- if (test.toString() != "abc")
- FAILED(test.toString(), "!=", "abc");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString().size() != 2)
- FAILED(test.toString().size(), "!=", 2);
- if (test.toString() != "ab")
- FAILED(test.toString(), "!=", "ab");
- return true;
- }
- bool _testBorder(WrappedBuffer<char, 3> &test)
- {
- test.put('a');
- test.put('b');
- test.put('c');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "abc")
- FAILED(test.toString(), "!=", "abc");
- test.put('d');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "bcd")
- FAILED(test.toString(), "!=", "bcd");
- test.put('e');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "cde")
- FAILED(test.toString(), "!=", "cde");
- test.put('f');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "def")
- FAILED(test.toString(), "!=", "def");
- test.put('g');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "efg")
- FAILED(test.toString(), "!=", "efg");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "ef")
- FAILED(test.toString(), "!=", "ef");
- test.put('g');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "efg")
- FAILED(test.toString(), "!=", "efg");
- test.put('h');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "fgh")
- FAILED(test.toString(), "!=", "fgh");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "fg")
- FAILED(test.toString(), "!=", "fg");
- test.put('h');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "fgh")
- FAILED(test.toString(), "!=", "fgh");
- test.put('i');
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "ghi")
- FAILED(test.toString(), "!=", "ghi");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "gh")
- FAILED(test.toString(), "!=", "gh");
- test.pop_back();
- if (test.size() != 1)
- FAILED(test.size(), "!=", 1);
- if (test.toString() != "g")
- FAILED(test.toString(), "!=", "g");
- test.pop_back();
- if (test.size() != 0)
- FAILED(test.size(), "!=", 0);
- test.pop_back();
- if (test.size() != 0)
- FAILED(test.size(), "!=", 0);
- return true;
- }
- bool testBorder()
- {
- WrappedBuffer<char, 3> test;
- if (!_testBorder(test))
- return false;
- return _testBorder(test);
- }
- bool _testBatch(WrappedBuffer<char, 3> &test)
- {
- char buf[] = {'a', 'b', 'c', 'd', 'e'};
- test.put(buf, 2);
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "ab")
- FAILED(test.toString(), "!=", "ab");
- test.put(&buf[2], 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "bcd")
- FAILED(test.toString(), "!=", "bcd");
- test.put(&buf[2], 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "dcd")
- FAILED(test.toString(), "!=", "dcd");
- test.put(&buf[3], 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "dde")
- FAILED(test.toString(), "!=", "dde");
- test.put(&buf[2], 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "ecd")
- FAILED(test.toString(), "!=", "ecd");
- test.put(buf, 3);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "abc")
- FAILED(test.toString(), "!=", "abc");
- test.put(buf, 5);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "cde")
- FAILED(test.toString(), "!=", "cde");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "cd")
- FAILED(test.toString(), "!=", "cd");
- test.put(buf, 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "dab")
- FAILED(test.toString(), "!=", "dab");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "da")
- FAILED(test.toString(), "!=", "da");
- test.put(buf, 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "aab")
- FAILED(test.toString(), "!=", "aab");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "aa")
- FAILED(test.toString(), "!=", "aa");
- test.put(&buf[1], 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "abc")
- FAILED(test.toString(), "!=", "abc");
- test.pop_back();
- if (test.size() != 2)
- FAILED(test.size(), "!=", 2);
- if (test.toString() != "ab")
- FAILED(test.toString(), "!=", "ab");
- test.put(buf, 2);
- if (test.size() != 3)
- FAILED(test.size(), "!=", 3);
- if (test.toString() != "bab")
- FAILED(test.toString(), "!=", "bab");
- return true;
- }
- bool testBatch()
- {
- WrappedBuffer<char, 3> test;
- return _testBatch(test);
- }
- int main()
- {
- if (!simpleTest())
- exit(EXIT_FAILURE);
- if (!testBorder())
- exit(EXIT_FAILURE);
- if (!testBatch())
- exit(EXIT_FAILURE);
- exit(EXIT_SUCCESS);
- }
|