示例#1
0
        public void ReadTypeAnnotations_AssertUnknownSymbolException()
        {
            byte[] data = DirStructure.OwnTestFileAsBytes("binary/unknown_symbols.bindat");
            UserBinaryReader reader = new UserBinaryReader(new MemoryStream(data));

            ReaderTestCommon.ReadTypeAnnotations_AssertUnknownSymbolException(reader);
        }
示例#2
0
        private void AssertReaderWriterPrescision(FileInfo file, double[] floats)
        {
            void assertReader(IIonReader reader)
            {
                foreach (var f in floats)
                {
                    Assert.AreEqual(IonType.Float, reader.MoveNext());
                    ReaderTestCommon.AssertFloatEqual(f, reader.DoubleValue());
                }

                Assert.AreEqual(IonType.None, reader.MoveNext());
            }

            void writerFunc(IIonWriter writer)
            {
                foreach (var f in floats)
                {
                    writer.WriteFloat(f);
                }

                writer.Finish();
            }

            var r = ReaderFromFile(file, InputStyle.FileStream);

            assertReader(r);

            AssertReaderWriter(assertReader, writerFunc);
        }
示例#3
0
 public void OneBoolInStruct()
 {
     //simple datagram: {yolo:true}
     var oneBool = DirStructure.OwnTestFileAsBytes("binary/onebool.bindat");
     var reader = new UserBinaryReader(new MemoryStream(oneBool));
     ReaderTestCommon.OneBoolInStruct(reader);
 }
示例#4
0
        public void Struct_OneBlob()
        {
            var data   = DirStructure.OwnTestFileAsBytes("binary/struct_oneblob.bindat");
            var reader = new UserBinaryReader(new MemoryStream(data));

            ReaderTestCommon.Struct_OneBlob(reader);
        }
示例#5
0
        public void Empty()
        {
            var bytes  = new byte[0];
            var reader = new UserBinaryReader(new MemoryStream(bytes));

            ReaderTestCommon.Empty(reader);
        }
示例#6
0
 public void TwoLayer_TestStepout_Skip()
 {
     const string fileName = "binary/twolayer.bindat";
     var data = DirStructure.OwnTestFileAsBytes(fileName);
     var reader = new UserBinaryReader(new MemoryStream(data));
     ReaderTestCommon.TwoLayer_TestStepoutSkip(reader);
 }
示例#7
0
 public void TrivialStruct()
 {
     //empty struct {}
     var trivial = DirStructure.OwnTestFileAsBytes("binary/trivial.bindat");
     var reader = new UserBinaryReader(new MemoryStream(trivial));
     ReaderTestCommon.TrivialStruct(reader);
 }
示例#8
0
        public void SingleIntNumberTest()
        {
            var value  = _ionValueFactory.NewInt(123);
            var reader = new UserTreeReader(value);

            ReaderTestCommon.SingleNumber(reader, 123);
        }
示例#9
0
        public void Combined1()
        {
            var data = DirStructure.OwnTestFileAsBytes("binary/combined1.bindat");
            var reader = new UserBinaryReader(new MemoryStream(data));

            ReaderTestCommon.Combined1(reader);
        }
示例#10
0
        public void BoolValueTest()
        {
            var value  = _ionValueFactory.NewBool(true);
            var reader = new UserTreeReader(value);

            ReaderTestCommon.SingleBool(reader, true);
        }
示例#11
0
        public void HasAnnotation_AssertUnknownSymbolException()
        {
            string         input  = "$ion_symbol_table::{ imports:[{ name: \"abc\", version: 1, max_id: 1}],symbols: [\"foo\"]}$10::$11::\"value\"";
            UserTextReader reader = new UserTextReader(input);

            ReaderTestCommon.HasAnnotation_AssertUnknownSymbolException(reader);
        }
示例#12
0
        public void SingleIntList()
        {
            var data   = DirStructure.OwnTestFileAsBytes("binary/single_int_list.bindat");
            var reader = new UserBinaryReader(new MemoryStream(data));

            ReaderTestCommon.SingleIntList(reader);
        }
示例#13
0
        public void FlatIntList()
        {
            //a flat list of ints [123,456,789]
            var flatListInt = DirStructure.OwnTestFileAsBytes("binary/flatlist_int.bindat");

            var reader = new UserBinaryReader(new MemoryStream(flatListInt));
            ReaderTestCommon.FlatIntList(reader);
        }
示例#14
0
        public void HasAnnotation_ZeroSymbol()
        {
            // an int with zero symbol annotation
            // $0::18
            var reader = new UserTextReader("$0::18");

            ReaderTestCommon.HasAnnotation_ZeroSymbol(reader);
        }
示例#15
0
        public void ReadTypeAnnotations_SingleField()
        {
            // a singlefield structure with annotations
            // {withannot:years::months::days::hours::minutes::seconds::18}
            byte[] data = DirStructure.OwnTestFileAsBytes("binary/annot_singlefield.bindat");
            UserBinaryReader reader = new UserBinaryReader(new MemoryStream(data));

            ReaderTestCommon.ReadTypeAnnotations_SingleField(reader);
        }
示例#16
0
        public void SingleSymbol()
        {
            //struct with single symbol
            //{single_symbol:'something'}
            var data = DirStructure.OwnTestFileAsBytes("binary/single_symbol.bindat");

            var reader = new UserBinaryReader(new MemoryStream(data));
            ReaderTestCommon.SingleSymbol(reader);
        }
示例#17
0
        public void ReadTypeAnnotations_ZeroSymbol()
        {
            // an int with zero symbol annotation
            // $0::18
            var data = new byte[] { 0xE4, 0x81, 0x80, 0x21, 0x12 };
            var reader = new UserBinaryReader(new MemoryStream(data));

            ReaderTestCommon.ReadTypeAnnotations_ZeroSymbol(reader);
        }
示例#18
0
        public void HasAnnotationFalse_SingleField()
        {
            // a singlefield structure with annotations
            // {withannot:years::months::days::hours::minutes::seconds::18}
            byte[]         data   = DirStructure.OwnTestFileAsBytes("text/annot_singlefield.ion");
            UserTextReader reader = new UserTextReader(new MemoryStream(data));

            ReaderTestCommon.HasAnnotationFalse_SingleField(reader);
        }
示例#19
0
        public void ValueWithTypeAnnotationSymbolsTest_AssertNoUnknownSymbolException()
        {
            string    input = "$ion_symbol_table::{ imports:[{ name: \"abc\", version: 1, max_id: 1}],symbols: [\"foo\"]}$10::$11::\"value\"";
            IIonValue data  = IonLoader.Default.Load(input);

            UserTreeReader reader = new UserTreeReader(data);

            ReaderTestCommon.ReadTypeAnnotationSymbols_AssertNoUnknownSymbolException(reader);
        }
示例#20
0
        public void FloatWithTerminatingEof()
        {
            var file = DirStructure.IonTestFile("good/floatWithTerminatingEof.ion");
            var r    = ReaderFromFile(file, InputStyle.FileStream);

            Assert.AreEqual(IonType.Float, r.MoveNext());
            ReaderTestCommon.AssertFloatEqual(12.3, r.DoubleValue());

            Assert.AreEqual(IonType.None, r.MoveNext());
        }
示例#21
0
        public void HasAnnotationTrueTest_ZeroSymbol()
        {
            //Must be: $0::18
            var intValue = _ionValueFactory.NewInt(18);

            intValue.AddTypeAnnotation(new SymbolToken(null, 0));
            var reader = new UserTreeReader(intValue);

            ReaderTestCommon.HasAnnotation_ZeroSymbol(reader);
        }
示例#22
0
        public void SingleIntList()
        {
            var data   = DirStructure.OwnTestFileAsBytes("text/single_int_list.ion");
            var reader = new UserTextReader(new MemoryStream(data));

            ReaderTestCommon.SingleIntList(reader);

            reader = new UserTextReader(Encoding.UTF8.GetString(data));
            ReaderTestCommon.SingleIntList(reader);
        }
示例#23
0
        public void SingleSymbolTest()
        {
            //{single_symbol:'something'}
            var value = new IonStruct {
                { "single_symbol", _ionValueFactory.NewSymbol("something") }
            };
            var reader = new UserTreeReader(value);

            ReaderTestCommon.SingleSymbol(reader);
        }
示例#24
0
        public void SimpleDatagramTest()
        {
            //simple datagram: {yolo:true}
            var value = new IonStruct {
                { "yolo", _ionValueFactory.NewBool(true) }
            };
            var reader = new UserTreeReader(value);

            ReaderTestCommon.OneBoolInStruct(reader);
        }
示例#25
0
        public void Combined1()
        {
            var data   = DirStructure.OwnTestFileAsBytes("text/combined1.ion");
            var reader = new UserTextReader(new MemoryStream(data));

            ReaderTestCommon.Combined1(reader);

            reader = new UserTextReader(Encoding.UTF8.GetString(data));
            ReaderTestCommon.Combined1(reader);
        }
示例#26
0
        public void Struct_OneBlob()
        {
            var data   = DirStructure.OwnTestFileAsBytes("text/struct_oneblob.ion");
            var reader = new UserTextReader(new MemoryStream(data));

            ReaderTestCommon.Struct_OneBlob(reader);

            reader = new UserTextReader(Encoding.UTF8.GetString(data));
            ReaderTestCommon.Struct_OneBlob(reader);
        }
示例#27
0
        public void SingleNumber(string text, long value)
        {
            var bin    = Encoding.UTF8.GetBytes(text);
            var reader = new UserTextReader(new MemoryStream(bin));

            ReaderTestCommon.SingleNumber(reader, value);

            reader = new UserTextReader(text);
            ReaderTestCommon.SingleNumber(reader, value);
        }
示例#28
0
        public void OneBoolInStruct()
        {
            //simple datagram: {yolo:true}
            var oneBool = DirStructure.OwnTestFileAsBytes("text/onebool.ion");
            var reader  = new UserTextReader(new MemoryStream(oneBool));

            ReaderTestCommon.OneBoolInStruct(reader);

            reader = new UserTextReader(Encoding.UTF8.GetString(oneBool));
            ReaderTestCommon.OneBoolInStruct(reader);
        }
示例#29
0
        public void ListOfIntsTest()
        {
            //Must be: [123,456,789]
            var value = _ionValueFactory.NewEmptyList();

            value.Add(_ionValueFactory.NewInt(123));
            value.Add(_ionValueFactory.NewInt(456));
            value.Add(_ionValueFactory.NewInt(789));
            var reader = new UserTreeReader(value);

            ReaderTestCommon.FlatIntList(reader);
        }
示例#30
0
        public void BlobPartialReadTest()
        {
            var blob = new byte[30];

            for (var i = 0; i < 30; i++)
            {
                blob[i] = (byte)i;
            }
            var value  = _ionValueFactory.NewBlob(blob);
            var reader = new UserTreeReader(value);

            ReaderTestCommon.Blob_PartialRead(30, 7, reader);
        }