anchor.diff:  
   import '../image_data.dart';
   
  -class TestByteData implements ByteData {
  -  TestByteData(this.scale);
  -  final double scale;
  -
  -  @override
  -  dynamic noSuchMethod(Invocation invocation) => null;
  +ByteData testByteData(double scale) => ByteData(8)..setFloat64(0, scale);
  +
  +extension on ByteData {
  +  double get scale => getFloat64(0);
   }
   
   const String testManifest = '''
  
positive.code:   ImageStreamCompleter load(AssetBundleImageKey key, DecoderCallback decode) {
      late ImageInfo imageInfo;
      key.bundle.load(key.name).then<void>((ByteData data) {
        final TestByteData testData = data as TestByteData;
        final ui.Image image = images[testData.scale]!;
        assert(image != null, 'Expected ${testData.scale} to have a key in $images');
        imageInfo = ImageInfo(image: image, scale: key.scale);
  
negative.code:     Key key = GlobalKey();
      await pumpTreeToLayout(tester, buildImageAtRatio(image, key, ratio, false, images, bundle));
      expect(getRenderImage(tester, key).size, const Size(200.0, 200.0));
      // Verify we got the 10x scaled image, since the test ByteData said it should be 10x.
      expect(getRenderImage(tester, key).image!.height, 480);
      key = GlobalKey();
      await pumpTreeToLayout(tester, buildImageAtRatio(image, key, ratio, true, images, bundle));
      expect(getRenderImage(tester, key).size, const Size(480.0, 480.0));
      // Verify we got the 10x scaled image, since the test ByteData said it should be 10x.
      expect(getRenderImage(tester, key).image!.height, 480);
    });
  
  