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()); }
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()); }
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 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 }
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); }
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); }
public static void AddVariabletype(FlatBufferBuilder builder, VarType variabletype) { builder.AddSbyte(6, (sbyte)variabletype, 0); }
public static void AddBuiltinCode(FlatBufferBuilder builder, tflite.BuiltinOperator builtinCode) { builder.AddSbyte(0, (sbyte)builtinCode, 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 AddQuickChatSelection(FlatBufferBuilder builder, QuickChatSelection quickChatSelection) { builder.AddSbyte(0, (sbyte)quickChatSelection, 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); }
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); }
public static void AddAngleDeg(FlatBufferBuilder builder, sbyte angleDeg) { builder.AddSbyte(2, angleDeg, 0); }
public static void AddCustomOptionsFormat(FlatBufferBuilder builder, tflite.CustomOptionsFormat customOptionsFormat) { builder.AddSbyte(6, (sbyte)customOptionsFormat, 0); }
public static void AddColor(FlatBufferBuilder builder, Color color) { builder.AddSbyte(6, (sbyte)color, 2); }
public static void AddType(FlatBufferBuilder builder, VariableType type) { builder.AddSbyte(0, (sbyte)(type), 0); }