Beispiel #1
0
        public void NumberStreamReaderReadContentFromEnd()
        {
            using (var stream = new MemoryStream(Encoding.ASCII.GetBytes("-10\n450")))
            {
                using (var numbersReader = new NumberStreamReader(stream))
                {
                    numbersReader.Stream.Seek(0, SeekOrigin.End);
                    var result = numbersReader.ReadContentFromEnd(2).FirstOrDefault();

                    Assert.IsNotNull(result);
                    Assert.AreEqual(2, result.Length);
                    Assert.AreEqual(53, result[0]);
                    Assert.AreEqual(48, result[1]);

                    numbersReader.Stream.Seek(-1, SeekOrigin.End);
                    result = numbersReader.ReadContentFromEnd(2).FirstOrDefault();

                    Assert.IsNotNull(result);
                    Assert.AreEqual(2, result.Length);
                    Assert.AreEqual(52, result[0]);
                    Assert.AreEqual(53, result[1]);

                    numbersReader.Stream.Seek(1, SeekOrigin.Begin);
                    result = numbersReader.ReadContentFromEnd(2).FirstOrDefault();

                    Assert.IsNotNull(result);
                    Assert.AreEqual(1, result.Length);
                    Assert.AreEqual(NumberStreamReader.Number_Zero, result[0]);
                }
            }
        }
        private static NumberStreamReader PrepareStreamReader(Stream stream)
        {
            var reader = new NumberStreamReader(stream);

            try
            {
                reader.PrepareFileInfoAsync(false).Wait();
            }
            catch
            {
                reader.Dispose();
                throw;
            }

            return(reader);
        }
Beispiel #3
0
        public void NumberStreamReaderNotNegative()
        {
            using (var stream = new MemoryStream(Encoding.ASCII.GetBytes("10\n450")))
            {
                using (var numbersReader = new NumberStreamReader(stream))
                {
                    numbersReader.PrepareFileInfoAsync(false).Wait();

                    Assert.IsNotNull(numbersReader.Info);
                    Assert.IsFalse(numbersReader.Info.IsInvalid);
                    Assert.IsFalse(numbersReader.Info.IsNegative);
                    Assert.IsNotNull(numbersReader.Info.RealPartPosition);
                    Assert.AreEqual(0, numbersReader.Info.RealPartPosition.From);
                    Assert.AreEqual(1, numbersReader.Info.RealPartPosition.To);
                }
            }
        }
 public void FullWorkflowTest_2longAnd1_Substraction()
 {
     using (var stream1 = new MemoryStream(Encoding.ASCII.GetBytes(long.MaxValue.ToString() + long.MaxValue.ToString())))
         using (var numbersReader1 = new NumberStreamReader(stream1))
             using (var stream2 = new MemoryStream(Encoding.ASCII.GetBytes("1")))
                 using (var numbersReader2 = new NumberStreamReader(stream2))
                     using (var resultStream = new MemoryStream())
                     {
                         NumberFilesManager manager = new NumberFilesManager(
                             stream1, stream2, resultStream, Operation.Substraction);
                         manager.DoArithmeticOperation().Wait();
                         //Assert.AreEqual("92233720368547758079223372036854775806".TrimStart('0').Length, resultStream.Length);
                         resultStream.Seek(0, SeekOrigin.Begin);
                         using (var streamReader = new StreamReader(resultStream))
                             Assert.AreEqual("92233720368547758079223372036854775806", streamReader.ReadLine().TrimStart('0'));
                     }
 }
 public void FullWorkflowTest_3And100_Substraction()
 {
     using (var stream1 = new MemoryStream(Encoding.ASCII.GetBytes("+000003")))
         using (var numbersReader1 = new NumberStreamReader(stream1))
             using (var stream2 = new MemoryStream(Encoding.ASCII.GetBytes("100")))
                 using (var numbersReader2 = new NumberStreamReader(stream2))
                     using (var resultStream = new MemoryStream())
                     {
                         NumberFilesManager manager = new NumberFilesManager(
                             stream1, stream2, resultStream, Operation.Substraction);
                         manager.DoArithmeticOperation().Wait();
                         //Assert.AreEqual(3, resultStream.Length);
                         resultStream.Seek(0, SeekOrigin.Begin);
                         using (var streamReader = new StreamReader(resultStream))
                             Assert.AreEqual("-0097", streamReader.ReadLine().TrimStart('0'));
                     }
 }
Beispiel #6
0
        public void NumberStreamReaderNegativeAndComments()
        {
            using (var stream = new MemoryStream(Encoding.ASCII.GetBytes("-10\n450\nBLABLAtest\n\nggsgfd\n")))
            {
                using (var numbersReader = new NumberStreamReader(stream))
                {
                    numbersReader.PrepareFileInfoAsync(false).Wait();

                    Assert.IsNotNull(numbersReader.Info);
                    Assert.IsFalse(numbersReader.Info.IsInvalid);
                    Assert.IsTrue(numbersReader.Info.IsNegative);
                    Assert.IsNotNull(numbersReader.Info.RealPartPosition);
                    Assert.AreEqual(1, numbersReader.Info.RealPartPosition.From);
                    Assert.AreEqual(2, numbersReader.Info.RealPartPosition.To);
                    ;
                }
            }
        }
        public void FullWorkflowTest_1And41_Addition()
        {
            using (var stream1 = new MemoryStream(Encoding.ASCII.GetBytes("1\r\nasdd")))
                using (var numbersReader1 = new NumberStreamReader(stream1))
                    using (var stream2 = new MemoryStream(Encoding.ASCII.GetBytes("41\r\nasdas")))
                        using (var numbersReader2 = new NumberStreamReader(stream2))
                            using (var resultStream = new MemoryStream())
                            {
                                NumberFilesManager manager = new NumberFilesManager(
                                    stream1, stream2, resultStream, Operation.Addition);
                                manager.DoArithmeticOperation().Wait();
                                //Assert.AreEqual(1, resultStream.Length);
                                resultStream.Seek(0, SeekOrigin.Begin);

                                using (var streamReader = new StreamReader(resultStream))
                                    Assert.AreEqual("42", streamReader.ReadLine().TrimStart('0'));
                            }
        }