Beispiel #1
0
            public async Task WhenNoMatchingFormatFoundAsync_ReturnsNull()
            {
                var asyncStream = new AsyncStreamWrapper(this.DataStream, () => false);

                (IImageInfo ImageInfo, IImageFormat Format)info = await Image.IdentifyWithFormatAsync(new Configuration(), asyncStream);

                Assert.Null(info.ImageInfo);
            }
Beispiel #2
0
 public Lexer(TranslationUnit tu, IAsyncStream <char> input, bool preprocessorTokens, bool outputTrivia)
 {
     TranslationUnit    = tu;
     InputStream        = input;
     PreprocessorTokens = preprocessorTokens;
     OutputTrivia       = outputTrivia;
     Filename           = tu.CurrentFilename;
     OutputStream       = new AsyncStreamWrapper <Token>(Lex(), Token.Eof);
 }
Beispiel #3
0
            public async Task FromStreamAsync_CustomConfiguration()
            {
                var asyncStream = new AsyncStreamWrapper(this.DataStream, () => false);

                (IImageInfo ImageInfo, IImageFormat Format)info = await Image.IdentifyWithFormatAsync(this.LocalConfiguration, asyncStream);

                Assert.Equal(this.LocalImageInfo, info.ImageInfo);
                Assert.Equal(this.LocalImageFormat, info.Format);
            }
Beispiel #4
0
            public async Task FromStreamAsync_GlobalConfiguration_NoFormat()
            {
                using (var stream = new MemoryStream(this.ActualImageBytes))
                {
                    var        asyncStream = new AsyncStreamWrapper(stream, () => false);
                    IImageInfo info        = await Image.IdentifyAsync(asyncStream);

                    Assert.NotNull(info);
                }
            }
Beispiel #5
0
            public async Task FromNonSeekableStreamAsync_GlobalConfiguration_NoFormat()
            {
                using var stream            = new MemoryStream(ActualImageBytes);
                using var nonSeekableStream = new NonSeekableStream(stream);

                var        asyncStream = new AsyncStreamWrapper(nonSeekableStream, () => false);
                IImageInfo info        = await Image.IdentifyAsync(asyncStream);

                Assert.NotNull(info);
            }
Beispiel #6
0
            public async Task FromStreamAsync_GlobalConfiguration()
            {
                using (var stream = new MemoryStream(this.ActualImageBytes))
                {
                    var asyncStream = new AsyncStreamWrapper(stream, () => false);
                    (IImageInfo ImageInfo, IImageFormat Format)res = await Image.IdentifyWithFormatAsync(asyncStream);

                    Assert.Equal(ExpectedImageSize, res.ImageInfo.Size());
                    Assert.Equal(ExpectedGlobalFormat, res.Format);
                }
            }
 public async Task SaveAsync_NeverCallsSyncMethods(string filename)
 {
     using (var image = new Image <Rgba32>(5, 5))
     {
         IImageEncoder encoder = image.DetectEncoder(filename);
         using (var stream = new MemoryStream())
         {
             var asyncStream = new AsyncStreamWrapper(stream, () => false);
             await image.SaveAsync(asyncStream, encoder);
         }
     }
 }
            public async Task SaveAsync_WithNonSeekableStream_IsCancellable()
            {
                using var image = new Image <Rgba32>(4000, 4000);
                var encoder = new PngEncoder()
                {
                    CompressionLevel = PngCompressionLevel.BestCompression
                };

                using var stream = new MemoryStream();
                var asyncStream = new AsyncStreamWrapper(stream, () => false);
                var cts         = new CancellationTokenSource();

                cts.CancelAfter(TimeSpan.FromTicks(1));

                await Assert.ThrowsAnyAsync <TaskCanceledException>(() =>
                                                                    image.SaveAsync(asyncStream, encoder, cts.Token));
            }
            public async Task SaveAsync_WithNonSeekableStream_IsCancellable()
            {
                using var image = new Image <Rgba32>(4000, 4000);
                var encoder = new PngEncoder()
                {
                    CompressionLevel = PngCompressionLevel.BestCompression
                };

                using var stream = new MemoryStream();
                var asyncStream = new AsyncStreamWrapper(stream, () => false);
                var cts         = new CancellationTokenSource();

                var pausedStream = new PausedStream(asyncStream);

                pausedStream.OnWaiting(s =>
                {
                    cts.Cancel();
                    pausedStream.Release();
                });

                await Assert.ThrowsAsync <TaskCanceledException>(async() => await image.SaveAsync(pausedStream, encoder, cts.Token));
            }
Beispiel #10
0
        public async Task TestAsyncStreamWrapper()
        {
            var ints = new AsyncStreamWrapper <int>(generator(), 0xFF);

            for (int i = 0; i < 5; i++)
            {
                Assert.False(await ints.Eof());
                Assert.Equal(await ints.Peek(), i);
                Assert.Equal(await ints.Read(), i);
            }
            ints.PutBack(4);
            ints.PutBack(3);
            for (int i = 3; i < 10; i++)
            {
                Assert.False(await ints.Eof());
                Assert.Equal(await ints.Peek(), i);
                Assert.Equal(await ints.Read(), i);
            }

            Assert.True(await ints.Eof());
            Assert.Equal(await ints.Peek(), ints.Sentinel);
            Assert.True(await ints.Eof());
        }
            public async Task SaveStreamWithMime(string filename, string mimeType)
            {
                using (var image = new Image <Rgba32>(5, 5))
                {
                    string       ext    = Path.GetExtension(filename);
                    IImageFormat format = image.GetConfiguration().ImageFormatsManager.FindFormatByFileExtension(ext);
                    Assert.Equal(mimeType, format.DefaultMimeType);

                    using (var stream = new MemoryStream())
                    {
                        var asyncStream = new AsyncStreamWrapper(stream, () => false);
                        await image.SaveAsync(asyncStream, format);

                        stream.Position = 0;

                        (Image Image, IImageFormat Format)imf = await Image.LoadWithFormatAsync(stream);

                        Assert.Equal(format, imf.Format);
                        Assert.Equal(mimeType, imf.Format.DefaultMimeType);

                        imf.Image.Dispose();
                    }
                }
            }
Beispiel #12
0
 public CharacterStream(TextReader reader)
 {
     Reader = reader;
     Stream = new AsyncStreamWrapper <char>(Enumerate(), Sentinel);
 }