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
 }
        public void TestBunchOfBools()
        {
            var builder = new FlatBufferBuilder(1);
            builder.StartObject(8);
            for (var i = 0; i < 8; i++)
            {
                builder.AddBool(i, true, false);
            }
            var off = builder.EndObject();
            builder.Finish(off);

            Assert.ArrayEqual(new byte[]
            {
                0, 0, 0, 0,
                0, 0, 0, 0,
                0, 0, 0, 0,
                0, 0, 0, 0,
                0, 0, 0, 0,
                0, 0, 0, 0,
                0, 0, 0, 0,       // padding to 64 bytes

                24, 0, 0, 0,     // root of table, pointing to vtable offset (obj0)
                20, 0, // vtable bytes
                12, 0, // object length
                11, 0, // start of value 0
                10, 0, // start of value 1
                9, 0, // start of value 2
                8, 0, // start of value 3
                7, 0, // start of value 4
                6, 0, // start of value 5
                5, 0, // start of value 6
                4, 0, // start of value 7

                20, 0, 0, 0, // int32 offset for start of vtable

                1, 1, 1, 1,  // values
                1, 1, 1, 1,

            },
                builder.DataBuffer.Data);
        }
示例#3
0
 public static void AddTestbool(FlatBufferBuilder builder, bool testbool)
 {
     builder.AddBool(15, testbool, false);
 }
示例#4
0
 public static void AddClose(FlatBufferBuilder builder, bool close)
 {
     builder.AddBool(3, close, false);
 }
示例#5
0
 public static void AddC(FlatBufferBuilder builder, bool c)
 {
     builder.AddBool(2, c, false);
 }
示例#6
0
 public static void AddTessEnabled(FlatBufferBuilder builder, bool tessEnabled)
 {
     builder.AddBool(18, tessEnabled, true);
 }
示例#7
0
 public static void AddValue(FlatBufferBuilder builder, bool value)
 {
     builder.AddBool(1, value, true);
 }
示例#8
0
 public static void AddInstantStart(FlatBufferBuilder builder, bool instantStart)
 {
     builder.AddBool(4, instantStart, false);
 }
示例#9
0
 public static void AddAmbientOcclusion(FlatBufferBuilder builder, bool ambientOcclusion)
 {
     builder.AddBool(4, ambientOcclusion, false);
 }
 public static void AddMaybeBool(FlatBufferBuilder builder, bool?maybeBool)
 {
     builder.AddBool(31, maybeBool);
 }
示例#11
0
 public static void AddA(FlatBufferBuilder builder, bool a)
 {
     builder.AddBool(0, a, false);
 }
示例#12
0
 public static void AddMultiplayer(FlatBufferBuilder builder, bool multiplayer)
 {
     builder.AddBool(12, multiplayer, false);
 }
示例#13
0
 public static void AddStatus(FlatBufferBuilder builder, bool status)
 {
     builder.AddBool(5, status, false);
 }
示例#14
0
 public static void AddFull(FlatBufferBuilder builder, bool full)
 {
     builder.AddBool(0, full, false);
 }
示例#15
0
 public static void AddRunToBodyStep(FlatBufferBuilder builder, bool runToBodyStep)
 {
     builder.AddBool(2, runToBodyStep, false);
 }
示例#16
0
 public static void AddFullscreen(FlatBufferBuilder builder, bool fullscreen)
 {
     builder.AddBool(0, fullscreen, false);
 }
示例#17
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.StartTable(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.EndTable();

                // 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");
                    }
                }
            }
        }
 public static void AddDefaultBool(FlatBufferBuilder builder, bool defaultBool)
 {
     builder.AddBool(32, defaultBool, true);
 }
示例#19
0
 public static void AddTimestats(FlatBufferBuilder builder, bool timestats)
 {
     builder.AddBool(4, timestats, false);
 }
 public void TestVTableWithInt16AndBool()
 {
     var builder = new FlatBufferBuilder(1);
     builder.StartObject(2);
     Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.Data);
     builder.AddShort(0, 0x3456, 0);
     builder.AddBool(1, true, false);
     builder.EndObject();
     Assert.ArrayEqual(new byte[]
     {
         8, 0, // vtable bytes
         8, 0, // object length inc vtable offset
         6, 0, // start of int16 value 0
         5, 0, // start of bool value 1
         8, 0, 0, 0, // int32 offset for start of vtable
         0, 1, // padding + value 1
         0x56, 0x34, // value 0
     },
         builder.DataBuffer.Data);
 }
示例#21
0
 public static void AddSkipReplays(FlatBufferBuilder builder, bool skipReplays)
 {
     builder.AddBool(3, skipReplays, false);
 }
 public void TestVTableWithOneBool()
 {
     var builder = new FlatBufferBuilder(1);
     builder.StartObject(1);
     Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.Data);
     builder.AddBool(0, true, false);
     builder.EndObject();
     Assert.ArrayEqual(new byte[]
     {
         0, 0, // padding to 16 bytes
         6, 0, // vtable bytes
         8, 0, // object length inc vtable offset
         7, 0, // start of bool value
         6, 0, 0, 0, // int32 offset for start of vtable
         0, 0, 0, // padding
         1, // value 0
     },
         builder.DataBuffer.Data);
 }
示例#23
0
 public static void AddShadowsEnabled(FlatBufferBuilder builder, bool shadowsEnabled)
 {
     builder.AddBool(1, shadowsEnabled, false);
 }
 public void TestVTableWithOneBool_DefaultValue()
 {
     var builder = new FlatBufferBuilder(1);
     builder.StartObject(1);
     Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.Data);
     builder.AddBool(0, false, false);
     builder.EndObject();
     Assert.ArrayEqual(new byte[]
     {
         0, 0, 0, 0, 0, 0, // padding to 16 bytes
         6, 0, // vtable bytes
         4, 0, // end of object from here
         0, 0, // entry 0 is empty (default value)
         6, 0, 0, 0, // int32 offset for start of vtable
     },
         builder.DataBuffer.Data);
 }
示例#25
0
 public static void AddAoForceDoubleSidedGeo(FlatBufferBuilder builder, bool aoForceDoubleSidedGeo)
 {
     builder.AddBool(17, aoForceDoubleSidedGeo, false);
 }
        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");
                    }

                }

            }
        }
示例#27
0
 public static void AddKey(FlatBufferBuilder builder, bool key)
 {
     builder.AddBool(0, key, false);
 }
示例#28
0
 public static void AddIsSuccess(FlatBufferBuilder builder, bool isSuccess)
 {
     builder.AddBool(4, isSuccess, false);
 }
示例#29
0
 public static void AddBool(FlatBufferBuilder builder, bool Bool)
 {
     builder.AddBool(3, Bool, false);
 }
示例#30
0
 public static void AddIsSignin(FlatBufferBuilder builder, bool isSignin)
 {
     builder.AddBool(1, isSignin, false);
 }
示例#31
0
 public static void AddIsActive(FlatBufferBuilder builder, bool isActive)
 {
     builder.AddBool(0, isActive, false);
 }
示例#32
0
 public static void AddKeysSorted(FlatBufferBuilder builder, bool keysSorted)
 {
     builder.AddBool(0, keysSorted, false);
 }
示例#33
0
 public static void AddV(FlatBufferBuilder builder, bool v)
 {
     builder.AddBool(2, v, false);
 }
示例#34
0
 public static void AddEnabled(FlatBufferBuilder builder, bool enabled)
 {
     builder.AddBool(2, enabled, false);
 }
示例#35
0
 public static void AddHasWheelContact(FlatBufferBuilder builder, bool hasWheelContact)
 {
     builder.AddBool(3, hasWheelContact, false);
 }
 public static void AddIsOrdered(FlatBufferBuilder builder, bool isOrdered)
 {
     builder.AddBool(2, isOrdered, false);
 }