#include "testlib.h" #include using namespace std; const string YES = "YES"; const string NO = "NO"; int main(int argc, char *argv[]) { setName("%s", ("multiple " + YES + "/" + NO + " (case insensitive)").c_str()); registerTestlibCmd(argc, argv); int index = 0, yesCount = 0, noCount = 0; string pa; while (!ans.seekEof() && !ouf.seekEof()) { index++; string ja = upperCase(ans.readToken()); pa = upperCase(ouf.readToken()); if (ja != YES && ja != NO) quitf(_fail, "%s or %s expected in answer, but %s found [%d%s token]", YES.c_str(), NO.c_str(), compress(ja).c_str(), index, englishEnding(index).c_str()); if (pa == YES) yesCount++; else if (pa == NO) noCount++; else quitf(_pe, "%s or %s expected, but %s found [%d%s token]", YES.c_str(), NO.c_str(), compress(pa).c_str(), index, englishEnding(index).c_str()); if (ja != pa) quitf(_wa, "expected %s, found %s [%d%s token]", compress(ja).c_str(), compress(pa).c_str(), index, englishEnding(index).c_str()); } int extraInAnsCount = 0; while (!ans.seekEof()) { ans.readToken(); extraInAnsCount++; } int extraInOufCount = 0; while (!ouf.seekEof()) { ouf.readToken(); extraInOufCount++; } if (extraInAnsCount > 0) quitf(_wa, "Answer contains longer sequence [length = %d], but output contains %d elements", index + extraInAnsCount, index); if (extraInOufCount > 0) quitf(_wa, "Output contains longer sequence [length = %d], but answer contains %d elements", index + extraInOufCount, index); if (index == 0) quitf(_ok, "Empty output"); else if (index == 1) quitf(_ok, "%s", pa.c_str()); else quitf(_ok, "%d token(s): yes count is %d, no count is %d", index, yesCount, noCount); quitf(_fail, "Impossible case"); }