Пример #1
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
 }
Пример #2
0
 public static void AddListSize(FlatBufferBuilder builder, int listSize)
 {
     builder.AddInt(0, listSize, 0);
 }
Пример #3
0
 public static void AddTesthashs32Fnv1(FlatBufferBuilder builder, int testhashs32Fnv1)
 {
     builder.AddInt(16, testhashs32Fnv1, 0);
 }
Пример #4
0
 public static void AddID(FlatBufferBuilder builder, int ID)
 {
     builder.AddInt(0, ID, 0);
 }
Пример #5
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);
 }
Пример #6
0
 public static void AddEftID(FlatBufferBuilder builder, int eftID)
 {
     builder.AddInt(1, eftID, 0);
 }
Пример #7
0
 public static void AddFoo(FlatBufferBuilder builder, int foo)
 {
     builder.AddInt(0, foo, 0);
 }
Пример #8
0
 public static void AddValue(FlatBufferBuilder builder, int value)
 {
     builder.AddInt(1, value, 0);
 }
Пример #9
0
 public static void AddScopeId(FlatBufferBuilder builder, int scopeId)
 {
     builder.AddInt(14, scopeId, 0);
 }
Пример #10
0
 public static void AddDevice(FlatBufferBuilder builder, int device)
 {
     builder.AddInt(12, device, 0);
 }
Пример #11
0
 public static void AddMapId(FlatBufferBuilder builder, int mapId)
 {
     builder.AddInt(12, mapId, 0);
 }
Пример #12
0
 public static void AddDef(FlatBufferBuilder builder, int def)
 {
     builder.AddInt(11, def, 0);
 }
Пример #13
0
 public static void AddAtt(FlatBufferBuilder builder, int att)
 {
     builder.AddInt(10, att, 0);
 }
Пример #14
0
 public static void AddMp(FlatBufferBuilder builder, int mp)
 {
     builder.AddInt(9, mp, 0);
 }
Пример #15
0
 public static void AddIceDefense(FlatBufferBuilder builder, int iceDefense)
 {
     builder.AddInt(8, iceDefense, 0);
 }
Пример #16
0
 public static void AddMaxMp(FlatBufferBuilder builder, int maxMp)
 {
     builder.AddInt(8, maxMp, 0);
 }
Пример #17
0
 public static void AddAgentId(FlatBufferBuilder builder, int agentId)
 {
     builder.AddInt(0, agentId, 0);
 }
Пример #18
0
 public static void AddSwordAttackDamage(FlatBufferBuilder builder, int swordAttackDamage)
 {
     builder.AddInt(0, swordAttackDamage, 0);
 }
Пример #19
0
 public static void AddId(FlatBufferBuilder builder, int id)
 {
     builder.AddInt(0, id, 0);
 }
Пример #20
0
 public static void AddCType(FlatBufferBuilder builder, Class cType)
 {
     builder.AddInt(0, (int)cType, 0);
 }
Пример #21
0
 public static void AddClientsLogged(FlatBufferBuilder builder, int clientsLogged)
 {
     builder.AddInt(3, clientsLogged, 0);
 }
 public static void AddTime(FlatBufferBuilder builder, int time)
 {
     builder.AddInt(1, time, 0);
 }
Пример #23
0
 public static void AddClientsMax(FlatBufferBuilder builder, int clientsMax)
 {
     builder.AddInt(4, clientsMax, 0);
 }
Пример #24
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");
                    }

                }

            }
        }
Пример #25
0
 public static void AddDID(FlatBufferBuilder builder, int dID)
 {
     builder.AddInt(1, dID, 0);
 }
Пример #26
0
 public static void AddAction(FlatBufferBuilder builder, int action)
 {
     builder.AddInt(0, action, 0);
 }
 public static void AddLength(FlatBufferBuilder builder, int length)
 {
     builder.AddInt(0, length, 0);
 }
Пример #28
0
 public static void AddTesthashs32Fnv1a(FlatBufferBuilder builder, int testhashs32Fnv1a)
 {
     builder.AddInt(20, testhashs32Fnv1a, 0);
 }
Пример #29
0
 public static void AddTicks(FlatBufferBuilder builder, int ticks)
 {
     builder.AddInt(0, ticks, 0);
 }
Пример #30
0
 public static void AddIceDamage(FlatBufferBuilder builder, int iceDamage)
 {
     builder.AddInt(7, iceDamage, 0);
 }
Пример #31
0
 public static void AddCount(FlatBufferBuilder builder, int count)
 {
     builder.AddInt(0, count, 0);
 }
Пример #32
0
 public static void AddFireDamage(FlatBufferBuilder builder, int fireDamage)
 {
     builder.AddInt(11, fireDamage, 0);
 }
Пример #33
0
 public static void AddKey(FlatBufferBuilder builder, int key)
 {
     builder.AddInt(0, key, 0);
 }