예제 #1
0
        public void TestVTableWithAStruct_of_int8_int16_int32()
        {
            var builder = new FlatBufferBuilder(1);

            builder.StartObject(1);
            builder.Prep(4 + 4 + 4, 0);
            builder.AddSbyte(55);
            builder.Pad(3);
            builder.AddShort(0x1234);
            builder.Pad(2);
            builder.AddInt(0x12345678);
            var structStart = builder.Offset;

            builder.AddStruct(0, structStart, 0);
            builder.EndObject();
            Assert.ArrayEqual(new byte[]
            {
                0, 0, 0, 0,
                0, 0, 0, 0,
                0, 0,                   // Padding to 32 bytes
                6, 0,                   // vtable bytes
                16, 0,                  // object length
                4, 0,                   // start of struct from here
                6, 0, 0, 0,             // int32 offset for start of vtable
                0x78, 0x56, 0x34, 0x12, // struct value 2
                0x00, 0x00, 0x34, 0x12, // struct value 1
                0x00, 0x00, 0x00, 55,   // struct value 0
            },
                              builder.DataBuffer.ToFullArray());
        }
예제 #2
0
 public static VectorOffset CreateBufferVector(FlatBufferBuilder builder, sbyte[] data)
 {
     builder.StartVector(1, data.Length, 1); for (int i = data.Length - 1; i >= 0; i--)
     {
         builder.AddSbyte(data[i]);
     }
     return(builder.EndVector());
 }
예제 #3
0
 public void TestNumbers()
 {
     var builder = new FlatBufferBuilder(1);
     Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.Data);
     builder.AddBool(true);
     Assert.ArrayEqual(new byte[] { 1 }, builder.DataBuffer.Data);
     builder.AddSbyte(-127);
     Assert.ArrayEqual(new byte[] { 129, 1 }, builder.DataBuffer.Data);
     builder.AddByte(255);
     Assert.ArrayEqual(new byte[] { 0, 255, 129, 1 }, builder.DataBuffer.Data); // First pad
     builder.AddShort(-32222);
     Assert.ArrayEqual(new byte[] { 0, 0, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.Data); // Second pad
     builder.AddUshort(0xFEEE);
     Assert.ArrayEqual(new byte[] { 0xEE, 0xFE, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.Data); // no pad
     builder.AddInt(-53687092);
     Assert.ArrayEqual(new byte[] { 0, 0, 0, 0, 204, 204, 204, 252, 0xEE, 0xFE, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.Data); // third pad
     builder.AddUint(0x98765432);
     Assert.ArrayEqual(new byte[] { 0x32, 0x54, 0x76, 0x98, 204, 204, 204, 252, 0xEE, 0xFE, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.Data); // no pad
 }
예제 #4
0
        public void TestNumbers()
        {
            var builder = new FlatBufferBuilder(1);

            Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.ToFullArray());
            builder.AddBool(true);
            Assert.ArrayEqual(new byte[] { 1 }, builder.DataBuffer.ToFullArray());
            builder.AddSbyte(-127);
            Assert.ArrayEqual(new byte[] { 129, 1 }, builder.DataBuffer.ToFullArray());
            builder.AddByte(255);
            Assert.ArrayEqual(new byte[] { 0, 255, 129, 1 }, builder.DataBuffer.ToFullArray());                                                                     // First pad
            builder.AddShort(-32222);
            Assert.ArrayEqual(new byte[] { 0, 0, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.ToFullArray());                                                   // Second pad
            builder.AddUshort(0xFEEE);
            Assert.ArrayEqual(new byte[] { 0xEE, 0xFE, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.ToFullArray());                                             // no pad
            builder.AddInt(-53687092);
            Assert.ArrayEqual(new byte[] { 0, 0, 0, 0, 204, 204, 204, 252, 0xEE, 0xFE, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.ToFullArray());             // third pad
            builder.AddUint(0x98765432);
            Assert.ArrayEqual(new byte[] { 0x32, 0x54, 0x76, 0x98, 204, 204, 204, 252, 0xEE, 0xFE, 0x22, 0x82, 0, 255, 129, 1 }, builder.DataBuffer.ToFullArray()); // no pad
        }
예제 #5
0
 public static void AddByteOrder(FlatBufferBuilder builder, ByteOrder byteOrder)
 {
     builder.AddSbyte(3, (sbyte)byteOrder, 0);
 }
 public static void AddField14(FlatBufferBuilder builder, sbyte Field14)
 {
     builder.AddSbyte(20, Field14, 0);
 }
 public static void AddShinyForced(FlatBufferBuilder builder, sbyte ShinyForced)
 {
     builder.AddSbyte(18, ShinyForced, 0);
 }
 public static void AddGender(FlatBufferBuilder builder, sbyte Gender)
 {
     builder.AddSbyte(16, Gender, 0);
 }
 public static void AddField03(FlatBufferBuilder builder, sbyte Field03)
 {
     builder.AddSbyte(3, Field03, 0);
 }
예제 #10
0
 public static void AddEventType(FlatBufferBuilder builder, UIEventType eventType)
 {
     builder.AddSbyte(0, (sbyte)eventType, 0);
 }
 public static void AddPathRadiusOffset(FlatBufferBuilder builder, sbyte pathRadiusOffset)
 {
     builder.AddSbyte(6, pathRadiusOffset, 0);
 }
예제 #12
0
 public static void AddVariabletype(FlatBufferBuilder builder, VarType variabletype)
 {
     builder.AddSbyte(6, (sbyte)variabletype, 0);
 }
예제 #13
0
 public static void AddBuiltinCode(FlatBufferBuilder builder, tflite.BuiltinOperator builtinCode)
 {
     builder.AddSbyte(0, (sbyte)builtinCode, 0);
 }
예제 #14
0
        private void CheckObjects(int fieldCount, int objectCount)
        {
            _lcg.Reset();

            const int testValuesMax = 11;

            var builder = new FlatBufferBuilder(1);

            var objects = new int[objectCount];

            for (var i = 0; i < objectCount; ++i)
            {
                builder.StartObject(fieldCount);

                for (var j = 0; j < fieldCount; ++j)
                {
                    var fieldType = _lcg.Next()%testValuesMax;

                    switch (fieldType)
                    {
                        case 0:
                        {
                            builder.AddBool(j, FuzzTestData.BoolValue, false);
                            break;
                        }
                        case 1:
                        {
                            builder.AddSbyte(j, FuzzTestData.Int8Value, 0);
                            break;
                        }
                        case 2:
                        {
                            builder.AddByte(j, FuzzTestData.UInt8Value, 0);
                            break;
                        }
                        case 3:
                        {
                            builder.AddShort(j, FuzzTestData.Int16Value, 0);
                            break;
                        }
                        case 4:
                        {
                            builder.AddUshort(j, FuzzTestData.UInt16Value, 0);
                            break;
                        }
                        case 5:
                        {
                            builder.AddInt(j, FuzzTestData.Int32Value, 0);
                            break;
                        }
                        case 6:
                        {
                            builder.AddUint(j, FuzzTestData.UInt32Value, 0);
                            break;
                        }
                        case 7:
                        {
                            builder.AddLong(j, FuzzTestData.Int64Value, 0);
                            break;
                        }
                        case 8:
                        {
                            builder.AddUlong(j, FuzzTestData.UInt64Value, 0);
                            break;
                        }
                        case 9:
                        {
                            builder.AddFloat(j, FuzzTestData.Float32Value, 0);
                            break;
                        }
                        case 10:
                        {
                            builder.AddDouble(j, FuzzTestData.Float64Value, 0);
                            break;
                        }
                        default:
                            throw new Exception("Unreachable");
                    }

                }

                var offset = builder.EndObject();

                // Store the object offset
                objects[i] = offset;
            }

            _lcg.Reset();

            // Test all objects are readable and return expected values...
            for (var i = 0; i < objectCount; ++i)
            {
                var table = new TestTable(builder.DataBuffer, builder.DataBuffer.Length - objects[i]);

                for (var j = 0; j < fieldCount; ++j)
                {
                    var fieldType = _lcg.Next() % testValuesMax;
                    var fc = 2 + j; // 2 == VtableMetadataFields
                    var f = fc * 2;

                    switch (fieldType)
                    {
                        case 0:
                        {
                            Assert.AreEqual(FuzzTestData.BoolValue, table.GetSlot(f, false));
                            break;
                        }
                        case 1:
                        {
                            Assert.AreEqual(FuzzTestData.Int8Value, table.GetSlot(f, (sbyte)0));
                            break;
                        }
                        case 2:
                        {
                            Assert.AreEqual(FuzzTestData.UInt8Value, table.GetSlot(f, (byte)0));
                            break;
                        }
                        case 3:
                        {
                            Assert.AreEqual(FuzzTestData.Int16Value, table.GetSlot(f, (short)0));
                            break;
                        }
                        case 4:
                        {
                            Assert.AreEqual(FuzzTestData.UInt16Value, table.GetSlot(f, (ushort)0));
                            break;
                        }
                        case 5:
                        {
                            Assert.AreEqual(FuzzTestData.Int32Value, table.GetSlot(f, (int)0));
                            break;
                        }
                        case 6:
                        {
                            Assert.AreEqual(FuzzTestData.UInt32Value, table.GetSlot(f, (uint)0));
                            break;
                        }
                        case 7:
                        {
                            Assert.AreEqual(FuzzTestData.Int64Value, table.GetSlot(f, (long)0));
                            break;
                        }
                        case 8:
                        {
                            Assert.AreEqual(FuzzTestData.UInt64Value, table.GetSlot(f, (ulong)0));
                            break;
                        }
                        case 9:
                        {
                            Assert.AreEqual(FuzzTestData.Float32Value, table.GetSlot(f, (float)0));
                            break;
                        }
                        case 10:
                        {
                            Assert.AreEqual(FuzzTestData.Float64Value, table.GetSlot(f, (double)0));
                            break;
                        }
                        default:
                            throw new Exception("Unreachable");
                    }

                }

            }
        }
예제 #15
0
 public static void AddQuickChatSelection(FlatBufferBuilder builder, QuickChatSelection quickChatSelection)
 {
     builder.AddSbyte(0, (sbyte)quickChatSelection, 0);
 }
예제 #16
0
 public void TestVTableWithAStruct_of_int8_int16_int32()
 {
     var builder = new FlatBufferBuilder(1);
     builder.StartObject(1);
     builder.Prep(4+4+4, 0);
     builder.AddSbyte(55);
     builder.Pad(3);
     builder.AddShort(0x1234);
     builder.Pad(2);
     builder.AddInt(0x12345678);
     var structStart = builder.Offset;
     builder.AddStruct(0, structStart, 0);
     builder.EndObject();
     Assert.ArrayEqual(new byte[]
     {
         0, 0, 0, 0,
         0, 0, 0, 0,
         0, 0, // Padding to 32 bytes
         6, 0, // vtable bytes
         16, 0, // object length
         4, 0,     // start of struct from here
         6, 0, 0, 0, // int32 offset for start of vtable
         0x78, 0x56, 0x34, 0x12,  // struct value 2
         0x00, 0x00, 0x34, 0x12, // struct value 1
         0x00, 0x00, 0x00, 55, // struct value 0
     },
         builder.DataBuffer.Data);
 }
 public static void AddPathTwist(FlatBufferBuilder builder, sbyte pathTwist)
 {
     builder.AddSbyte(12, pathTwist, 0);
 }
 public static void AddField02(FlatBufferBuilder builder, sbyte Field02)
 {
     builder.AddSbyte(2, Field02, 0);
 }
 public static void AddPathTwistBegin(FlatBufferBuilder builder, sbyte pathTwistBegin)
 {
     builder.AddSbyte(13, pathTwistBegin, 0);
 }
 public static void AddAbility(FlatBufferBuilder builder, sbyte Ability)
 {
     builder.AddSbyte(11, Ability, 0);
 }
 public static void AddProfileShape(FlatBufferBuilder builder, ProfileShape profileShape)
 {
     builder.AddSbyte(20, (sbyte)profileShape, 0);
 }
 public static void AddFlawlessIVs(FlatBufferBuilder builder, sbyte FlawlessIVs)
 {
     builder.AddSbyte(17, FlawlessIVs, 0);
 }
 public static void AddHollowShape(FlatBufferBuilder builder, HollowShape hollowShape)
 {
     builder.AddSbyte(21, (sbyte)hollowShape, 0);
 }
 public static void AddField13(FlatBufferBuilder builder, sbyte Field13)
 {
     builder.AddSbyte(19, Field13, 0);
 }
 public static void AddPathSkew(FlatBufferBuilder builder, sbyte pathSkew)
 {
     builder.AddSbyte(44, pathSkew, 0);
 }
 public static void AddNature(FlatBufferBuilder builder, sbyte Nature)
 {
     builder.AddSbyte(21, Nature, 0);
 }
 public static void AddPathTaperX(FlatBufferBuilder builder, sbyte pathTaperX)
 {
     builder.AddSbyte(45, pathTaperX, 0);
 }
예제 #28
0
 public static void AddDtype(FlatBufferBuilder builder, DType dtype)
 {
     builder.AddSbyte(2, (sbyte)dtype, 0);
 }
 public static void AddPathTaperY(FlatBufferBuilder builder, sbyte pathTaperY)
 {
     builder.AddSbyte(46, pathTaperY, 0);
 }
예제 #30
0
 public static void AddAngleDeg(FlatBufferBuilder builder, sbyte angleDeg)
 {
     builder.AddSbyte(2, angleDeg, 0);
 }
예제 #31
0
 public static void AddCustomOptionsFormat(FlatBufferBuilder builder, tflite.CustomOptionsFormat customOptionsFormat)
 {
     builder.AddSbyte(6, (sbyte)customOptionsFormat, 0);
 }
예제 #32
0
파일: Monster.cs 프로젝트: gabi3721/code
 public static void AddColor(FlatBufferBuilder builder, Color color)
 {
     builder.AddSbyte(6, (sbyte)color, 2);
 }
예제 #33
0
 public static void AddType(FlatBufferBuilder builder, VariableType type)
 {
     builder.AddSbyte(0, (sbyte)(type), 0);
 }