public void Counting_FileName_CorrectResultStatistics()
        {
            var fileName = Path.Combine(TestContext.CurrentContext.TestDirectory, "sample1.xml");
            var storage  = new MetadataStorage();
            var metadata = new ImageMetadata
            {
                Description = "Описание",
                Brightness  = ImageBrightness.Dark,
                Plates      = new[]
                {
                    new PlateMetadata()
                    {
                        Number = "T288EC98", Quality = PlateQuality.Low, Stencil = "RU_N01_a000aa00"
                    },
                    new PlateMetadata()
                    {
                        Number = "C534YX177", Quality = PlateQuality.Normal, Stencil = "RU_N02_a000aa100"
                    },
                },
            };

            metadata.Plates[0].Coordinates[0] = new Point(111, 45);
            storage.SaveMetadata(fileName, metadata);
            var dictionary = new Dictionary <string, int>
            {
                { "RU_N01_a000aa00", 0 },
                { "RU_N01_a000aa100", 0 },
            };
            var stat = new DirectoryStatistics();

            stat.Counting(fileName, dictionary, 1000);

            Assert.That(stat.CountImages, Is.EqualTo(1));
            Assert.That(stat.CountDarkImages, Is.EqualTo(1));
            Assert.That(stat.CountLightImages, Is.Zero);
            Assert.That(stat.CountLargeNumber, Is.Zero);
            Assert.That(stat.CountMediumNumber, Is.EqualTo(1));
            Assert.That(stat.CountSmallNumber, Is.Zero);
            Assert.That(stat.CountHighQuality, Is.Zero);
            Assert.That(stat.CountMediumQuality, Is.EqualTo(1));
            Assert.That(stat.CountLowQuality, Is.EqualTo(1));
            Assert.That(stat.CountOneNumber, Is.Zero);
            Assert.That(stat.CountTwoNumber, Is.EqualTo(1));
            Assert.That(stat.CountMoreTwoNumber, Is.Zero);
            Assert.That(stat.Marked, Is.Zero);
            Assert.That(stat.Unplaced, Is.EqualTo(1));
        }
        public void SaveAndLoadMetadata()
        {
            var filename = Path.Combine(TestContext.CurrentContext.TestDirectory, "sample1.xml");
            var storage  = new MetadataStorage();
            var metadata = new ImageMetadata()
            {
                Description = "Описание",
                Brightness  = ImageBrightness.Dark,
                DongleId    = "1000DF",
                Plates      = new[]
                {
                    new PlateMetadata()
                    {
                        Number           = "T288EC98",
                        Quality          = PlateQuality.Low,
                        Stencil          = "RU_N01_a000aa00",
                        Confidence       = 1,
                        PlateDataSymbols = new[]
                        {
                            new PlateDataSymbol()
                            {
                                Value = "1"
                            },
                            new PlateDataSymbol()
                            {
                                Value = "E", Confidence = 0.5, Coordinates = new[] { new Point(11, 45) }
                            },
                        },
                    },
                    new PlateMetadata()
                    {
                        Number           = "C534YX177",
                        Quality          = PlateQuality.Normal,
                        Stencil          = "RU_N02_a000aa100",
                        PlateDataSymbols = new[]
                        {
                            new PlateDataSymbol()
                            {
                                Value = "A", Confidence = 0,
                            },
                            new PlateDataSymbol()
                            {
                                Value = "D", Confidence = 1
                            },
                        },
                    },
                },
            };

            metadata.Plates[0].Coordinates[0] = new Point(111, 45);


            storage.SaveMetadata(filename, metadata);

            var loadedMetadata = storage.LoadMetadata(filename);

            Assert.That(loadedMetadata.HumanChecked, Is.EqualTo(metadata.HumanChecked));
            Assert.That(loadedMetadata.Brightness, Is.EqualTo(metadata.Brightness));
            Assert.That(loadedMetadata.Description, Is.EqualTo(metadata.Description));
            Assert.That(loadedMetadata.DongleId, Is.EqualTo(metadata.DongleId));
            Assert.That(loadedMetadata.Plates.Length, Is.EqualTo(metadata.Plates.Length));
            Assert.That(loadedMetadata.Plates[0].Number, Is.EqualTo(metadata.Plates[0].Number));
            Assert.That(loadedMetadata.Plates[0].Stencil, Is.EqualTo(metadata.Plates[0].Stencil));
            Assert.That(loadedMetadata.Plates[0].Quality, Is.EqualTo(metadata.Plates[0].Quality));
            Assert.That(loadedMetadata.Plates[0].Confidence, Is.EqualTo(metadata.Plates[0].Confidence));
            Assert.That(loadedMetadata.Plates[0].Coordinates[0], Is.EqualTo(metadata.Plates[0].Coordinates[0]));
            Assert.That(loadedMetadata.Plates[0].PlateDataSymbols[0].Value, Is.EqualTo(metadata.Plates[0].PlateDataSymbols[0].Value));
            Assert.That(loadedMetadata.Plates[0].PlateDataSymbols[0].Confidence, Is.EqualTo(metadata.Plates[0].PlateDataSymbols[0].Confidence));
            Assert.That(loadedMetadata.Plates[0].PlateDataSymbols[0].Coordinates[0], Is.EqualTo(metadata.Plates[0].PlateDataSymbols[0].Coordinates[0]));
        }