39 std::string usage =
"Compares two FST archives for equality.\n\n Usage: ";
41 usage +=
" in1.far in2.far";
43 SET_FLAGS(usage.c_str(), &argc, &argv,
true);
50 std::unique_ptr<FarReaderClass> reader1(FarReaderClass::Open(argv[1]));
51 if (!reader1)
return 1;
53 std::unique_ptr<FarReaderClass> reader2(FarReaderClass::Open(argv[2]));
54 if (!reader2)
return 1;
57 s::Equal(*reader1, *reader2, FST_FLAGS_delta,
58 FST_FLAGS_begin_key, FST_FLAGS_end_key);
60 if (reader1->Error()) {
61 FSTERROR() <<
"Error reading FAR: " << argv[1];
64 if (reader2->Error()) {
65 FSTERROR() <<
"Error reading FAR: " << argv[2];
69 if (!result)
VLOG(1) <<
"FARs are not equal";
71 return result ? 0 : 2;
void ShowUsage(bool long_usage=true)
bool Equal(FarReaderClass &reader1, FarReaderClass &reader2, float delta, std::string_view begin_key, std::string_view end_key)
void ExpandArgs(int argc, char **argv, int *argcp, char ***argvp)
#define SET_FLAGS(usage, argc, argv, rmflags)
int farequal_main(int argc, char **argv)
DECLARE_string(begin_key)