예제 #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);
        }