#include #include "coding.h" #include #include std::string do_encode(std::string s) { for(auto& c : s) { c = encode(c); } return s; } std::string do_decode(std::string s) { for(auto& c: s) { c = decode(c); } return s; } bool test_coding() { std::string str = "Testing, testing... I should be the same after encoding and decoding"; std::string enc = do_encode(str); assert(enc.size() == str.size()); // sanity check for test program bool result = true; for(std::string::size_type i=0; i != enc.size(); ++i){ if(enc[i] == str[i]) { std::cout << "enc == str in position " << i << std::endl; result = false; } }; std::string dec = do_decode(enc); assert(enc.size() == dec.size()); // sanity check for test program if(str != dec) { std::cout << "Expected: " << str << "(" << str.size() << ")\nActual: " << dec << "(" << dec.size() << ")" << std::endl; result = false; } return result; } int main() { if(test_coding()) { std::cout << "Test passed." << std::endl; } else { std::cout << "Test failed." << std::endl; } return 0; }