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 static void AddId(FlatBufferBuilder builder, uint id) { builder.AddUint(0, id, 0); }
public static void AddTriggerTimeMs(FlatBufferBuilder builder, uint triggerTimeMs) { builder.AddUint(0, triggerTimeMs, 0); }
public static void AddGroup(FlatBufferBuilder builder, uint group) { builder.AddUint(0, group, 0); }
public static void AddWidth(FlatBufferBuilder builder, uint width) { builder.AddUint(9, width, 0); }
public static void AddBandwidthThrottle(FlatBufferBuilder builder, uint bandwidthThrottle) { builder.AddUint(7, bandwidthThrottle, 0); }
public static void AddPlayerCount(FlatBufferBuilder builder, uint playerCount) { builder.AddUint(8, playerCount, 0); }
public static void AddTesthashu32Fnv1a(FlatBufferBuilder builder, uint testhashu32Fnv1a) { builder.AddUint(21, testhashu32Fnv1a, 0); }
public static void AddVersion(FlatBufferBuilder builder, uint version) { builder.AddUint(3, version, 0); }
public static void AddAltForm(FlatBufferBuilder builder, uint AltForm) { builder.AddUint(2, AltForm, 0); }
public static void AddTesthashu32Fnv1(FlatBufferBuilder builder, uint testhashu32Fnv1) { builder.AddUint(17, testhashu32Fnv1, 0); }
public static void AddSpecies(FlatBufferBuilder builder, uint Species) { builder.AddUint(1, Species, 0); }
public static void AddEntryIndex(FlatBufferBuilder builder, uint EntryIndex) { builder.AddUint(0, EntryIndex, 0); }
public static void AddRuleSettingId(FlatBufferBuilder builder, uint ruleSettingId) { builder.AddUint(2, ruleSettingId, 0); }
public static void AddValue(FlatBufferBuilder builder, uint value) { builder.AddUint(1, value, 4294967295); }
public static void AddRuleId(FlatBufferBuilder builder, uint ruleId) { builder.AddUint(3, ruleId, 0); }
public static void AddCs(FlatBufferBuilder builder, uint cs) { builder.AddUint(5, cs, 0); }
public static void AddSettingId(FlatBufferBuilder builder, uint settingId) { builder.AddUint(1, settingId, 0); }
public static void AddTime(FlatBufferBuilder builder, uint time) { builder.AddUint(0, time, 0); }
public static void AddChannelId(FlatBufferBuilder builder, uint channelId) { builder.AddUint(2, channelId, 0); }
public static void AddSpectatorCount(FlatBufferBuilder builder, uint spectatorCount) { builder.AddUint(9, spectatorCount, 0); }
internal static void AddSize(FlatBufferBuilder builder, uint size) { builder.AddUint(0, size, 0); }
public static void AddZindex(FlatBufferBuilder builder, uint zindex) { builder.AddUint(3, zindex, 0); }
public static void AddLatency(FlatBufferBuilder builder, uint latency) { builder.AddUint(1, latency, 0); }
public static void AddHeight(FlatBufferBuilder builder, uint height) { builder.AddUint(10, height, 0); }
public static void AddFps(FlatBufferBuilder builder, uint fps) { builder.AddUint(2, fps, 0); }
public static void AddRank(FlatBufferBuilder builder, uint rank) { builder.AddUint(4, rank, 0); }
public static void AddVps(FlatBufferBuilder builder, uint vps) { builder.AddUint(3, vps, 0); }
public static void AddDeviceId(FlatBufferBuilder builder, uint deviceId) { builder.AddUint(0, deviceId, 0); }
public static void AddUps(FlatBufferBuilder builder, uint ups) { builder.AddUint(4, ups, 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"); } } } }
public static void AddKey(FlatBufferBuilder builder, uint key) { builder.AddUint(0, key, 0); }