>>>
void main() {
  test("synchronized files are up-to-date", () {
    ({
      'lib/src/visitor/async_evaluate.dart': 'lib/src/visitor/evaluate.dart',
      'lib/src/async_environment.dart': 'lib/src/environment.dart'
    })
        .forEach((sourcePath, targetPath) {
      var source = new File(sourcePath).readAsStringSync();
      var target = new File(targetPath).readAsStringSync();

      var hash = sha1.convert(utf8.encode(source));
      if (!target.contains("Checksum: $hash")) {
        fail("$targetPath is out-of-date.\n"
            "Run pub run grinder to update it.");
      }
    });
  });
}
<<<
void main() {
  test("synchronized files are up-to-date", () {
    ({
      'lib/src/visitor/async_evaluate.dart': 'lib/src/visitor/evaluate.dart',
      'lib/src/async_environment.dart': 'lib/src/environment.dart',
    }).forEach((sourcePath, targetPath) {
      var source = new File(sourcePath).readAsStringSync();
      var target = new File(targetPath).readAsStringSync();

      var hash = sha1.convert(utf8.encode(source));
      if (!target.contains("Checksum: $hash")) {
        fail(
          "$targetPath is out-of-date.\n"
          "Run pub run grinder to update it.",
        );
      }
    });
  });
}