public void BatchReadPdfFileInStreamTest()
        {
            using (MockContext context = MockContext.Start(this.GetType()))
            {
                HttpMockServer.Initialize(this.GetType(), "BatchReadPdfFileInStreamTest");

                using (IComputerVisionClient client = GetComputerVisionClient(HttpMockServer.CreateInstance()))
                    using (FileStream stream = new FileStream(GetTestImagePath("menu.pdf"), FileMode.Open))
                    {
                        ReadInStreamHeaders headers = client.ReadInStreamWithHttpMessagesAsync(stream).Result.Headers;

                        Assert.NotNull(headers.OperationLocation);

                        ReadOperationResult readOperationResult = GetRecognitionResultWithPolling(client, headers.OperationLocation);

                        Assert.NotNull(readOperationResult);
                        Assert.Equal(OperationStatusCodes.Succeeded, readOperationResult.Status);

                        Assert.NotNull(readOperationResult.AnalyzeResult);
                        Assert.Equal(1, readOperationResult.AnalyzeResult.ReadResults.Count);

                        var recognitionResult = readOperationResult.AnalyzeResult.ReadResults[0];

                        Assert.Equal(1, recognitionResult.Page);
                        Assert.Equal(8.5, recognitionResult.Width);
                        Assert.Equal(11, recognitionResult.Height);
                        Assert.Equal(TextRecognitionResultDimensionUnit.Inch, recognitionResult.Unit);

                        Assert.Equal(28, recognitionResult.Lines.Count);
                        Assert.Equal("Microsoft", recognitionResult.Lines[0].Text);
                    }
            }
        }
예제 #2
0
        private static async Task <string> GetReadOperationRequestAsync(Stream image)
        {
            ReadInStreamHeaders result = await RunTaskWithAutoRetryOnQuotaLimitExceededError(() => client.ReadInStreamAsync(image));

            string operationLocation = result.OperationLocation;

            // Retrieve the URI where the extracted text will be stored from the Operation-Location header.
            // We only need the ID and not the full URL
            return(operationLocation.Substring(operationLocation.Length - NumberOfCharsInOperationId));
        }
        public void ReadFileInStreamTest()
        {
            using (MockContext context = MockContext.Start(this.GetType()))
            {
                HttpMockServer.Initialize(this.GetType(), "BatchReadFileInStreamTest");

                using (IComputerVisionClient client = GetComputerVisionClient(HttpMockServer.CreateInstance()))
                    using (FileStream stream = new FileStream(GetTestImagePath("whiteboard.jpg"), FileMode.Open))
                    {
                        ReadInStreamHeaders headers = client.ReadInStreamWithHttpMessagesAsync(stream).Result.Headers;

                        Assert.NotNull(headers.OperationLocation);

                        ReadOperationResult readOperationResult = GetRecognitionResultWithPolling(client, headers.OperationLocation);

                        Assert.NotNull(readOperationResult);
                        Assert.Equal(OperationStatusCodes.Succeeded, readOperationResult.Status);

                        Assert.NotNull(readOperationResult.AnalyzeResult);
                        Assert.Equal(1, readOperationResult.AnalyzeResult.ReadResults.Count);

                        var recognitionResult = readOperationResult.AnalyzeResult.ReadResults[0];

                        Assert.Equal(1, recognitionResult.Page);
                        Assert.Equal(1000, recognitionResult.Width);
                        Assert.Equal(664, recognitionResult.Height);
                        Assert.Equal(TextRecognitionResultDimensionUnit.Pixel, recognitionResult.Unit);

                        Assert.Equal(
                            new string[] { "you must be the change", "you want to see in the world!" }.OrderBy(t => t),
                            recognitionResult.Lines.Select(line => line.Text).OrderBy(t => t));
                        Assert.Equal(2, recognitionResult.Lines.Count);
                        Assert.Equal(5, recognitionResult.Lines[0].Words.Count);
                        Assert.Equal(7, recognitionResult.Lines[1].Words.Count);
                    }
            }
        }