blob: b19813f7adbf49610a9cf7ffd64a7fb1229604cd [file] [log] [blame]
Austin Schuh272c6132020-11-14 16:37:52 -08001import XCTest
2@testable import FlatBuffers
3
4final class FlatBuffersStructsTests: XCTestCase {
5
6 func testWritingAndMutatingBools() {
7 var fbb = FlatBufferBuilder()
8 let start = TestMutatingBool.startTestMutatingBool(&fbb)
9 TestMutatingBool.add(b: createProperty(builder: &fbb), &fbb)
10 let root = TestMutatingBool.endTestMutatingBool(&fbb, start: start)
11 fbb.finish(offset: root)
12
13 let testMutatingBool = TestMutatingBool.getRootAsTestMutatingBool(bb: fbb.sizedBuffer)
14 let property = testMutatingBool.b
15 XCTAssertEqual(property?.property, false)
16 property?.mutate(property: false)
17 XCTAssertEqual(property?.property, false)
18 property?.mutate(property: true)
19 XCTAssertEqual(property?.property, true)
20 }
21
22}
23
24struct Vec: Readable {
25 var __buffer: ByteBuffer! { __p.bb }
26
27 static var size = 12
28 static var alignment = 4
29 private var __p: Struct
30 init(_ fb: ByteBuffer, o: Int32) { __p = Struct(bb: fb, position: o) }
31 var x: Float32 { return __p.readBuffer(of: Float32.self, at: 0)}
32 var y: Float32 { return __p.readBuffer(of: Float32.self, at: 4)}
33 var z: Float32 { return __p.readBuffer(of: Float32.self, at: 8)}
34}
35
36@discardableResult
37func createVecWrite(builder: inout FlatBufferBuilder, x: Float32, y: Float32, z: Float32) -> Offset<UOffset> {
38 builder.createStructOf(size: Vec.size, alignment: Vec.alignment)
39 builder.reverseAdd(v: x, postion: 0)
40 builder.reverseAdd(v: y, postion: 4)
41 builder.reverseAdd(v: z, postion: 8)
42 return builder.endStruct()
43}