12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #include "testlib.h"
- #include <string>
- #include <vector>
- #include <sstream>
- using namespace std;
- bool compareWords(const string& a, const string& b) {
- vector<string> va, vb;
- stringstream sa;
- sa << a;
- string cur;
- while (sa >> cur)
- va.push_back(cur);
- stringstream sb;
- sb << b;
- while (sb >> cur)
- vb.push_back(cur);
- return (va == vb);
- }
- int main(int argc, char *argv[]) {
- setName("compare files as sequence of tokens in lines");
- registerTestlibCmd(argc, argv);
- string strAnswer;
- int n = 0;
- while (!ans.eof()) {
- std::string j = ans.readString();
- if (j.empty() && ans.eof())
- break;
- string p = ouf.readString();
- strAnswer = p;
- n++;
- if (!compareWords(j, p))
- quitf(_wa, "%d%s lines differ - expected: '%s', found: '%s'", n, englishEnding(n).c_str(),
- compress(j).c_str(), compress(p).c_str());
- }
- if (n == 1)
- quitf(_ok, "single line: '%s'", compress(strAnswer).c_str());
- quitf(_ok, "%d lines", n);
- }
|