예제 #1
0
        public async Task BasicAddingTest()
        {
            // Act
            var results = await algorithm.AddWatermark(CancellationToken.None).ToListAsync();

            var watermarked        = results[0];
            var cleaned            = results[1];
            var extractedWatermark = results[2];

            // Assert
            watermarked.Label.Should().Be("Watermarked");
            cleaned.Label.Should().Be("Cleaned");
            extractedWatermark.Label.Should().Be("Extracted watermark");

            AssertBitmapsAreEqual(watermarked.Image, new Color[2, 2] {
                { Color.FromArgb(255, 0, 0), Color.FromArgb(1, 254, 0) },
                { Color.FromArgb(0, 0, 2), Color.FromArgb(0, 0, 3) }
            });

            // Cleaning process has a random element. The cleaned image will not be tested.

            AssertBitmapsAreEqual(extractedWatermark.Image, new Color[2, 2] {
                { Color.FromArgb(255, 0, 0), Color.FromArgb(255, 0, 0) },
                { Color.FromArgb(0, 0, 0), Color.FromArgb(0, 0, 255) }
            });
        }
예제 #2
0
 protected override Task ProcessAdding(CancellationToken ct)
 {
     return(Task.Run(async() =>
     {
         ct.ThrowIfCancellationRequested();
         var p = ReadParameters();
         ct.ThrowIfCancellationRequested();
         var algorithm = new Lsb(p);
         var result = algorithm.AddWatermark(ct);
         await ShowAlgorithmOutput(result);
     }));
 }