xref: /aosp_15_r20/external/flatbuffers/tests/FlatBuffers.Test/FlatBufferBuilderTests.cs (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Worker /*
2*890232f2SAndroid Build Coastguard Worker  * Copyright 2016 Google Inc. All rights reserved.
3*890232f2SAndroid Build Coastguard Worker  *
4*890232f2SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*890232f2SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*890232f2SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*890232f2SAndroid Build Coastguard Worker  *
8*890232f2SAndroid Build Coastguard Worker  *     http://www.apache.org/licenses/LICENSE-2.0
9*890232f2SAndroid Build Coastguard Worker  *
10*890232f2SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*890232f2SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*890232f2SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*890232f2SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*890232f2SAndroid Build Coastguard Worker  * limitations under the License.
15*890232f2SAndroid Build Coastguard Worker  */
16*890232f2SAndroid Build Coastguard Worker 
17*890232f2SAndroid Build Coastguard Worker using System;
18*890232f2SAndroid Build Coastguard Worker 
19*890232f2SAndroid Build Coastguard Worker namespace FlatBuffers.Test
20*890232f2SAndroid Build Coastguard Worker {
21*890232f2SAndroid Build Coastguard Worker     [FlatBuffersTestClass]
22*890232f2SAndroid Build Coastguard Worker     public class FlatBufferBuilderTests
23*890232f2SAndroid Build Coastguard Worker     {
CreateBuffer(bool forceDefaults = true)24*890232f2SAndroid Build Coastguard Worker         private FlatBufferBuilder CreateBuffer(bool forceDefaults = true)
25*890232f2SAndroid Build Coastguard Worker         {
26*890232f2SAndroid Build Coastguard Worker             var fbb = new FlatBufferBuilder(16) {ForceDefaults = forceDefaults};
27*890232f2SAndroid Build Coastguard Worker             fbb.StartTable(1);
28*890232f2SAndroid Build Coastguard Worker             return fbb;
29*890232f2SAndroid Build Coastguard Worker         }
30*890232f2SAndroid Build Coastguard Worker 
31*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddBool_AndDefaultValue_OffsetIncreasesBySize()32*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddBool_AndDefaultValue_OffsetIncreasesBySize()
33*890232f2SAndroid Build Coastguard Worker         {
34*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
35*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
36*890232f2SAndroid Build Coastguard Worker             fbb.AddBool(0, false, false);
37*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
38*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(bool), endOffset-storedOffset);
39*890232f2SAndroid Build Coastguard Worker         }
40*890232f2SAndroid Build Coastguard Worker 
41*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddSByte_AndDefaultValue_OffsetIncreasesBySize()42*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddSByte_AndDefaultValue_OffsetIncreasesBySize()
43*890232f2SAndroid Build Coastguard Worker         {
44*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
45*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
46*890232f2SAndroid Build Coastguard Worker             fbb.AddSbyte(0, 0, 0);
47*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
48*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(sbyte), endOffset - storedOffset);
49*890232f2SAndroid Build Coastguard Worker         }
50*890232f2SAndroid Build Coastguard Worker 
51*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddByte_AndDefaultValue_OffsetIncreasesBySize()52*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddByte_AndDefaultValue_OffsetIncreasesBySize()
53*890232f2SAndroid Build Coastguard Worker         {
54*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
55*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
56*890232f2SAndroid Build Coastguard Worker             fbb.AddByte(0, 0, 0);
57*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
58*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(byte), endOffset - storedOffset);
59*890232f2SAndroid Build Coastguard Worker         }
60*890232f2SAndroid Build Coastguard Worker 
61*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddShort_AndDefaultValue_OffsetIncreasesBySize()62*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddShort_AndDefaultValue_OffsetIncreasesBySize()
63*890232f2SAndroid Build Coastguard Worker         {
64*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
65*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
66*890232f2SAndroid Build Coastguard Worker             fbb.AddShort(0, 0, 0);
67*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
68*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(short), endOffset - storedOffset);
69*890232f2SAndroid Build Coastguard Worker         }
70*890232f2SAndroid Build Coastguard Worker 
71*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddUShort_AndDefaultValue_OffsetIncreasesBySize()72*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddUShort_AndDefaultValue_OffsetIncreasesBySize()
73*890232f2SAndroid Build Coastguard Worker         {
74*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
75*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
76*890232f2SAndroid Build Coastguard Worker             fbb.AddUshort(0, 0, 0);
77*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
78*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(ushort), endOffset - storedOffset);
79*890232f2SAndroid Build Coastguard Worker         }
80*890232f2SAndroid Build Coastguard Worker 
81*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddInt_AndDefaultValue_OffsetIncreasesBySize()82*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddInt_AndDefaultValue_OffsetIncreasesBySize()
83*890232f2SAndroid Build Coastguard Worker         {
84*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
85*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
86*890232f2SAndroid Build Coastguard Worker             fbb.AddInt(0, 0, 0);
87*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
88*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(int), endOffset - storedOffset);
89*890232f2SAndroid Build Coastguard Worker         }
90*890232f2SAndroid Build Coastguard Worker 
91*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddUInt_AndDefaultValue_OffsetIncreasesBySize()92*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddUInt_AndDefaultValue_OffsetIncreasesBySize()
93*890232f2SAndroid Build Coastguard Worker         {
94*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
95*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
96*890232f2SAndroid Build Coastguard Worker             fbb.AddUint(0, 0, 0);
97*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
98*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(uint), endOffset - storedOffset);
99*890232f2SAndroid Build Coastguard Worker         }
100*890232f2SAndroid Build Coastguard Worker 
101*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddLong_AndDefaultValue_OffsetIncreasesBySize()102*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddLong_AndDefaultValue_OffsetIncreasesBySize()
103*890232f2SAndroid Build Coastguard Worker         {
104*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
105*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
106*890232f2SAndroid Build Coastguard Worker             fbb.AddLong(0, 0, 0);
107*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
108*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(long), endOffset - storedOffset);
109*890232f2SAndroid Build Coastguard Worker         }
110*890232f2SAndroid Build Coastguard Worker 
111*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddULong_AndDefaultValue_OffsetIncreasesBySize()112*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddULong_AndDefaultValue_OffsetIncreasesBySize()
113*890232f2SAndroid Build Coastguard Worker         {
114*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
115*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
116*890232f2SAndroid Build Coastguard Worker             fbb.AddUlong(0, 0, 0);
117*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
118*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(ulong), endOffset - storedOffset);
119*890232f2SAndroid Build Coastguard Worker         }
120*890232f2SAndroid Build Coastguard Worker 
121*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddFloat_AndDefaultValue_OffsetIncreasesBySize()122*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddFloat_AndDefaultValue_OffsetIncreasesBySize()
123*890232f2SAndroid Build Coastguard Worker         {
124*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
125*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
126*890232f2SAndroid Build Coastguard Worker             fbb.AddFloat(0, 0, 0);
127*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
128*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(float), endOffset - storedOffset);
129*890232f2SAndroid Build Coastguard Worker         }
130*890232f2SAndroid Build Coastguard Worker 
131*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WithForceDefaults_WhenAddDouble_AndDefaultValue_OffsetIncreasesBySize()132*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WithForceDefaults_WhenAddDouble_AndDefaultValue_OffsetIncreasesBySize()
133*890232f2SAndroid Build Coastguard Worker         {
134*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer();
135*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
136*890232f2SAndroid Build Coastguard Worker             fbb.AddDouble(0, 0, 0);
137*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
138*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(double), endOffset - storedOffset);
139*890232f2SAndroid Build Coastguard Worker         }
140*890232f2SAndroid Build Coastguard Worker 
141*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddBool_AndDefaultValue_OffsetIsUnchanged()142*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddBool_AndDefaultValue_OffsetIsUnchanged()
143*890232f2SAndroid Build Coastguard Worker         {
144*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
145*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
146*890232f2SAndroid Build Coastguard Worker             fbb.AddBool(0, false, false);
147*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
148*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
149*890232f2SAndroid Build Coastguard Worker         }
150*890232f2SAndroid Build Coastguard Worker 
151*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddSByte_AndDefaultValue_OffsetIsUnchanged()152*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddSByte_AndDefaultValue_OffsetIsUnchanged()
153*890232f2SAndroid Build Coastguard Worker         {
154*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
155*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
156*890232f2SAndroid Build Coastguard Worker             fbb.AddSbyte(0, 0, 0);
157*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
158*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
159*890232f2SAndroid Build Coastguard Worker         }
160*890232f2SAndroid Build Coastguard Worker 
161*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddByte_AndDefaultValue_OffsetIsUnchanged()162*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddByte_AndDefaultValue_OffsetIsUnchanged()
163*890232f2SAndroid Build Coastguard Worker         {
164*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
165*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
166*890232f2SAndroid Build Coastguard Worker             fbb.AddByte(0, 0, 0);
167*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
168*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
169*890232f2SAndroid Build Coastguard Worker         }
170*890232f2SAndroid Build Coastguard Worker 
171*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddShort_AndDefaultValue_OffsetIsUnchanged()172*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddShort_AndDefaultValue_OffsetIsUnchanged()
173*890232f2SAndroid Build Coastguard Worker         {
174*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
175*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
176*890232f2SAndroid Build Coastguard Worker             fbb.AddShort(0, 0, 0);
177*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
178*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
179*890232f2SAndroid Build Coastguard Worker         }
180*890232f2SAndroid Build Coastguard Worker 
181*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddUShort_AndDefaultValue_OffsetIsUnchanged()182*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddUShort_AndDefaultValue_OffsetIsUnchanged()
183*890232f2SAndroid Build Coastguard Worker         {
184*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
185*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
186*890232f2SAndroid Build Coastguard Worker             fbb.AddUshort(0, 0, 0);
187*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
188*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
189*890232f2SAndroid Build Coastguard Worker         }
190*890232f2SAndroid Build Coastguard Worker 
191*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddInt_AndDefaultValue_OffsetIsUnchanged()192*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddInt_AndDefaultValue_OffsetIsUnchanged()
193*890232f2SAndroid Build Coastguard Worker         {
194*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
195*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
196*890232f2SAndroid Build Coastguard Worker             fbb.AddInt(0, 0, 0);
197*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
198*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
199*890232f2SAndroid Build Coastguard Worker         }
200*890232f2SAndroid Build Coastguard Worker 
201*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddUInt_AndDefaultValue_OffsetIsUnchanged()202*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddUInt_AndDefaultValue_OffsetIsUnchanged()
203*890232f2SAndroid Build Coastguard Worker         {
204*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
205*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
206*890232f2SAndroid Build Coastguard Worker             fbb.AddUint(0, 0, 0);
207*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
208*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
209*890232f2SAndroid Build Coastguard Worker         }
210*890232f2SAndroid Build Coastguard Worker 
211*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddLong_AndDefaultValue_OffsetIsUnchanged()212*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddLong_AndDefaultValue_OffsetIsUnchanged()
213*890232f2SAndroid Build Coastguard Worker         {
214*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
215*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
216*890232f2SAndroid Build Coastguard Worker             fbb.AddLong(0, 0, 0);
217*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
218*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
219*890232f2SAndroid Build Coastguard Worker         }
220*890232f2SAndroid Build Coastguard Worker 
221*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddULong_AndDefaultValue_OffsetIsUnchanged()222*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddULong_AndDefaultValue_OffsetIsUnchanged()
223*890232f2SAndroid Build Coastguard Worker         {
224*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
225*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
226*890232f2SAndroid Build Coastguard Worker             fbb.AddUlong(0, 0, 0);
227*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
228*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
229*890232f2SAndroid Build Coastguard Worker         }
230*890232f2SAndroid Build Coastguard Worker 
231*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddFloat_AndDefaultValue_OffsetIsUnchanged()232*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddFloat_AndDefaultValue_OffsetIsUnchanged()
233*890232f2SAndroid Build Coastguard Worker         {
234*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
235*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
236*890232f2SAndroid Build Coastguard Worker             fbb.AddFloat(0, 0, 0);
237*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
238*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
239*890232f2SAndroid Build Coastguard Worker         }
240*890232f2SAndroid Build Coastguard Worker 
241*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddDouble_AndDefaultValue_OffsetIsUnchanged()242*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddDouble_AndDefaultValue_OffsetIsUnchanged()
243*890232f2SAndroid Build Coastguard Worker         {
244*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
245*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
246*890232f2SAndroid Build Coastguard Worker             fbb.AddDouble(0, 0, 0);
247*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
248*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
249*890232f2SAndroid Build Coastguard Worker         }
250*890232f2SAndroid Build Coastguard Worker 
251*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableBool_OffsetIsUnchanged()252*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableBool_OffsetIsUnchanged()
253*890232f2SAndroid Build Coastguard Worker         {
254*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
255*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
256*890232f2SAndroid Build Coastguard Worker             fbb.AddBool(0, null);
257*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
258*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
259*890232f2SAndroid Build Coastguard Worker         }
260*890232f2SAndroid Build Coastguard Worker 
261*890232f2SAndroid Build Coastguard Worker                 [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableSbyte_OffsetIsUnchanged()262*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableSbyte_OffsetIsUnchanged()
263*890232f2SAndroid Build Coastguard Worker         {
264*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
265*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
266*890232f2SAndroid Build Coastguard Worker             fbb.AddSbyte(0, null);
267*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
268*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
269*890232f2SAndroid Build Coastguard Worker         }
270*890232f2SAndroid Build Coastguard Worker 
271*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableByte_OffsetIsUnchanged()272*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableByte_OffsetIsUnchanged()
273*890232f2SAndroid Build Coastguard Worker         {
274*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
275*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
276*890232f2SAndroid Build Coastguard Worker             fbb.AddByte(0, null);
277*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
278*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
279*890232f2SAndroid Build Coastguard Worker         }
280*890232f2SAndroid Build Coastguard Worker 
281*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableShort_OffsetIsUnchanged()282*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableShort_OffsetIsUnchanged()
283*890232f2SAndroid Build Coastguard Worker         {
284*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
285*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
286*890232f2SAndroid Build Coastguard Worker             fbb.AddShort(0, null);
287*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
288*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
289*890232f2SAndroid Build Coastguard Worker         }
290*890232f2SAndroid Build Coastguard Worker 
291*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableUShort_OffsetIsUnchanged()292*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableUShort_OffsetIsUnchanged()
293*890232f2SAndroid Build Coastguard Worker         {
294*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
295*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
296*890232f2SAndroid Build Coastguard Worker             fbb.AddUshort(0, null);
297*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
298*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
299*890232f2SAndroid Build Coastguard Worker         }
300*890232f2SAndroid Build Coastguard Worker 
301*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableInt_OffsetIsUnchanged()302*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableInt_OffsetIsUnchanged()
303*890232f2SAndroid Build Coastguard Worker         {
304*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
305*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
306*890232f2SAndroid Build Coastguard Worker             fbb.AddInt(0, null);
307*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
308*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
309*890232f2SAndroid Build Coastguard Worker         }
310*890232f2SAndroid Build Coastguard Worker 
311*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableUInt_OffsetIsUnchanged()312*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableUInt_OffsetIsUnchanged()
313*890232f2SAndroid Build Coastguard Worker         {
314*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
315*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
316*890232f2SAndroid Build Coastguard Worker             fbb.AddUint(0, null);
317*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
318*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
319*890232f2SAndroid Build Coastguard Worker         }
320*890232f2SAndroid Build Coastguard Worker 
321*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableLong_OffsetIsUnchanged()322*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableLong_OffsetIsUnchanged()
323*890232f2SAndroid Build Coastguard Worker         {
324*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
325*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
326*890232f2SAndroid Build Coastguard Worker             fbb.AddLong(0, null);
327*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
328*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
329*890232f2SAndroid Build Coastguard Worker         }
330*890232f2SAndroid Build Coastguard Worker 
331*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableULong_OffsetIsUnchanged()332*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableULong_OffsetIsUnchanged()
333*890232f2SAndroid Build Coastguard Worker         {
334*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
335*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
336*890232f2SAndroid Build Coastguard Worker             fbb.AddUlong(0, null);
337*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
338*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
339*890232f2SAndroid Build Coastguard Worker         }
340*890232f2SAndroid Build Coastguard Worker 
341*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableFloat_OffsetIsUnchanged()342*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableFloat_OffsetIsUnchanged()
343*890232f2SAndroid Build Coastguard Worker         {
344*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
345*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
346*890232f2SAndroid Build Coastguard Worker             fbb.AddFloat(0, null);
347*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
348*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
349*890232f2SAndroid Build Coastguard Worker         }
350*890232f2SAndroid Build Coastguard Worker 
351*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableDouble_OffsetIsUnchanged()352*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableDouble_OffsetIsUnchanged()
353*890232f2SAndroid Build Coastguard Worker         {
354*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
355*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
356*890232f2SAndroid Build Coastguard Worker             fbb.AddDouble(0, null);
357*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
358*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
359*890232f2SAndroid Build Coastguard Worker         }
360*890232f2SAndroid Build Coastguard Worker 
361*890232f2SAndroid Build Coastguard Worker          [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableBool_OffsetIsChangedBySize()362*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableBool_OffsetIsChangedBySize()
363*890232f2SAndroid Build Coastguard Worker         {
364*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
365*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
366*890232f2SAndroid Build Coastguard Worker             fbb.AddBool(0, true);
367*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
368*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(bool), endOffset - storedOffset);
369*890232f2SAndroid Build Coastguard Worker         }
370*890232f2SAndroid Build Coastguard Worker 
371*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableSbyte_OffsetIsChangedBySize()372*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableSbyte_OffsetIsChangedBySize()
373*890232f2SAndroid Build Coastguard Worker         {
374*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
375*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
376*890232f2SAndroid Build Coastguard Worker             fbb.AddSbyte(0, 1);
377*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
378*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(sbyte), endOffset - storedOffset);
379*890232f2SAndroid Build Coastguard Worker         }
380*890232f2SAndroid Build Coastguard Worker 
381*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableByte_OffsetIsChangedBySize()382*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableByte_OffsetIsChangedBySize()
383*890232f2SAndroid Build Coastguard Worker         {
384*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
385*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
386*890232f2SAndroid Build Coastguard Worker             fbb.AddByte(0, 1);
387*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
388*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(byte), endOffset - storedOffset);
389*890232f2SAndroid Build Coastguard Worker         }
390*890232f2SAndroid Build Coastguard Worker 
391*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableShort_OffsetIsChangedBySize()392*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableShort_OffsetIsChangedBySize()
393*890232f2SAndroid Build Coastguard Worker         {
394*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
395*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
396*890232f2SAndroid Build Coastguard Worker             fbb.AddShort(0, 1);
397*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
398*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(short), endOffset - storedOffset);
399*890232f2SAndroid Build Coastguard Worker         }
400*890232f2SAndroid Build Coastguard Worker 
401*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableUShort_OffsetIsChangedBySize()402*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableUShort_OffsetIsChangedBySize()
403*890232f2SAndroid Build Coastguard Worker         {
404*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
405*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
406*890232f2SAndroid Build Coastguard Worker             fbb.AddUshort(0, 1);
407*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
408*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(ushort), endOffset - storedOffset);
409*890232f2SAndroid Build Coastguard Worker         }
410*890232f2SAndroid Build Coastguard Worker 
411*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableInt_OffsetIsChangedBySize()412*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableInt_OffsetIsChangedBySize()
413*890232f2SAndroid Build Coastguard Worker         {
414*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
415*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
416*890232f2SAndroid Build Coastguard Worker             fbb.AddInt(0, 1);
417*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
418*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(int), endOffset - storedOffset);
419*890232f2SAndroid Build Coastguard Worker         }
420*890232f2SAndroid Build Coastguard Worker 
421*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableUInt_OffsetIsChangedBySize()422*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableUInt_OffsetIsChangedBySize()
423*890232f2SAndroid Build Coastguard Worker         {
424*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
425*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
426*890232f2SAndroid Build Coastguard Worker             fbb.AddUint(0, 1);
427*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
428*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(uint), endOffset - storedOffset);
429*890232f2SAndroid Build Coastguard Worker         }
430*890232f2SAndroid Build Coastguard Worker 
431*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableLong_OffsetIsChangedBySize()432*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableLong_OffsetIsChangedBySize()
433*890232f2SAndroid Build Coastguard Worker         {
434*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
435*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
436*890232f2SAndroid Build Coastguard Worker             fbb.AddLong(0, 1);
437*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
438*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(long), endOffset - storedOffset);
439*890232f2SAndroid Build Coastguard Worker         }
440*890232f2SAndroid Build Coastguard Worker 
441*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableULong_OffsetIsChangedBySize()442*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableULong_OffsetIsChangedBySize()
443*890232f2SAndroid Build Coastguard Worker         {
444*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
445*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
446*890232f2SAndroid Build Coastguard Worker             fbb.AddUlong(0, 1);
447*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
448*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(ulong), endOffset - storedOffset);
449*890232f2SAndroid Build Coastguard Worker         }
450*890232f2SAndroid Build Coastguard Worker 
451*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableFloat_OffsetIsChangedBySize()452*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableFloat_OffsetIsChangedBySize()
453*890232f2SAndroid Build Coastguard Worker         {
454*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
455*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
456*890232f2SAndroid Build Coastguard Worker             fbb.AddFloat(0, 1.0F);
457*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
458*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(float), endOffset - storedOffset);
459*890232f2SAndroid Build Coastguard Worker         }
460*890232f2SAndroid Build Coastguard Worker 
461*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_WhenAddNullableDouble_OffsetIsChangedBySize()462*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_WhenAddNullableDouble_OffsetIsChangedBySize()
463*890232f2SAndroid Build Coastguard Worker         {
464*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
465*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
466*890232f2SAndroid Build Coastguard Worker             fbb.AddDouble(0, 1.0);
467*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
468*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(sizeof(double), endOffset - storedOffset);
469*890232f2SAndroid Build Coastguard Worker         }
470*890232f2SAndroid Build Coastguard Worker 
471*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_Array_Float()472*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_Array_Float()
473*890232f2SAndroid Build Coastguard Worker         {
474*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
475*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
476*890232f2SAndroid Build Coastguard Worker 
477*890232f2SAndroid Build Coastguard Worker             const int len = 9;
478*890232f2SAndroid Build Coastguard Worker 
479*890232f2SAndroid Build Coastguard Worker             // Construct the data array
480*890232f2SAndroid Build Coastguard Worker             var data = new float[len];
481*890232f2SAndroid Build Coastguard Worker             data[0] = 1.0079F;
482*890232f2SAndroid Build Coastguard Worker             data[1] = 4.0026F;
483*890232f2SAndroid Build Coastguard Worker             data[2] = 6.941F;
484*890232f2SAndroid Build Coastguard Worker             data[3] = 9.0122F;
485*890232f2SAndroid Build Coastguard Worker             data[4] = 10.811F;
486*890232f2SAndroid Build Coastguard Worker             data[5] = 12.0107F;
487*890232f2SAndroid Build Coastguard Worker             data[6] = 14.0067F;
488*890232f2SAndroid Build Coastguard Worker             data[7] = 15.9994F;
489*890232f2SAndroid Build Coastguard Worker             data[8] = 18.9984F;
490*890232f2SAndroid Build Coastguard Worker 
491*890232f2SAndroid Build Coastguard Worker             fbb.Add(data);
492*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
493*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset + sizeof(float) * data.Length);
494*890232f2SAndroid Build Coastguard Worker         }
495*890232f2SAndroid Build Coastguard Worker 
496*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_Array_Bool()497*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_Array_Bool()
498*890232f2SAndroid Build Coastguard Worker         {
499*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
500*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
501*890232f2SAndroid Build Coastguard Worker 
502*890232f2SAndroid Build Coastguard Worker             const int len = 9;
503*890232f2SAndroid Build Coastguard Worker 
504*890232f2SAndroid Build Coastguard Worker             // Construct the data array
505*890232f2SAndroid Build Coastguard Worker             var data = new bool[len];
506*890232f2SAndroid Build Coastguard Worker             data[0] = true;
507*890232f2SAndroid Build Coastguard Worker             data[1] = true;
508*890232f2SAndroid Build Coastguard Worker             data[2] = false;
509*890232f2SAndroid Build Coastguard Worker             data[3] = true;
510*890232f2SAndroid Build Coastguard Worker             data[4] = false;
511*890232f2SAndroid Build Coastguard Worker             data[5] = true;
512*890232f2SAndroid Build Coastguard Worker             data[6] = true;
513*890232f2SAndroid Build Coastguard Worker             data[7] = true;
514*890232f2SAndroid Build Coastguard Worker             data[8] = false;
515*890232f2SAndroid Build Coastguard Worker 
516*890232f2SAndroid Build Coastguard Worker             fbb.Add(data);
517*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
518*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset + sizeof(bool) * data.Length);
519*890232f2SAndroid Build Coastguard Worker         }
520*890232f2SAndroid Build Coastguard Worker 
521*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_Array_Double()522*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_Array_Double()
523*890232f2SAndroid Build Coastguard Worker         {
524*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
525*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
526*890232f2SAndroid Build Coastguard Worker 
527*890232f2SAndroid Build Coastguard Worker             const int len = 9;
528*890232f2SAndroid Build Coastguard Worker 
529*890232f2SAndroid Build Coastguard Worker             // Construct the data array
530*890232f2SAndroid Build Coastguard Worker             var data = new double[len];
531*890232f2SAndroid Build Coastguard Worker             data[0] = 1.0079;
532*890232f2SAndroid Build Coastguard Worker             data[1] = 4.0026;
533*890232f2SAndroid Build Coastguard Worker             data[2] = 6.941;
534*890232f2SAndroid Build Coastguard Worker             data[3] = 9.0122;
535*890232f2SAndroid Build Coastguard Worker             data[4] = 10.811;
536*890232f2SAndroid Build Coastguard Worker             data[5] = 12.0107;
537*890232f2SAndroid Build Coastguard Worker             data[6] = 14.0067;
538*890232f2SAndroid Build Coastguard Worker             data[7] = 15.9994;
539*890232f2SAndroid Build Coastguard Worker             data[8] = 18.9984;
540*890232f2SAndroid Build Coastguard Worker 
541*890232f2SAndroid Build Coastguard Worker             fbb.Add(data);
542*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
543*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset + sizeof(double) * data.Length);
544*890232f2SAndroid Build Coastguard Worker         }
545*890232f2SAndroid Build Coastguard Worker 
546*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_Array_Null_Throws()547*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_Array_Null_Throws()
548*890232f2SAndroid Build Coastguard Worker         {
549*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
550*890232f2SAndroid Build Coastguard Worker 
551*890232f2SAndroid Build Coastguard Worker             // Construct the data array
552*890232f2SAndroid Build Coastguard Worker             float[] data = null;
553*890232f2SAndroid Build Coastguard Worker 
554*890232f2SAndroid Build Coastguard Worker             Assert.Throws<ArgumentNullException>(() => fbb.Add(data));
555*890232f2SAndroid Build Coastguard Worker         }
556*890232f2SAndroid Build Coastguard Worker 
557*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_Array_UnsupportedType_Throws()558*890232f2SAndroid Build Coastguard Worker         public unsafe void FlatBufferBuilder_Add_Array_UnsupportedType_Throws()
559*890232f2SAndroid Build Coastguard Worker         {
560*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
561*890232f2SAndroid Build Coastguard Worker 
562*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
563*890232f2SAndroid Build Coastguard Worker 
564*890232f2SAndroid Build Coastguard Worker             // Construct the data array
565*890232f2SAndroid Build Coastguard Worker             var data = new DummyStruct[10];
566*890232f2SAndroid Build Coastguard Worker             Assert.Throws<ArgumentException>(() => fbb.Add(data));
567*890232f2SAndroid Build Coastguard Worker         }
568*890232f2SAndroid Build Coastguard Worker 
569*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_Array_Empty_Noop()570*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_Array_Empty_Noop()
571*890232f2SAndroid Build Coastguard Worker         {
572*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
573*890232f2SAndroid Build Coastguard Worker 
574*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
575*890232f2SAndroid Build Coastguard Worker 
576*890232f2SAndroid Build Coastguard Worker             // Construct an empty data array
577*890232f2SAndroid Build Coastguard Worker             float[] data = new float[0];
578*890232f2SAndroid Build Coastguard Worker             fbb.Add(data);
579*890232f2SAndroid Build Coastguard Worker 
580*890232f2SAndroid Build Coastguard Worker             // Make sure the offset didn't change since nothing
581*890232f2SAndroid Build Coastguard Worker             // was really added
582*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
583*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
584*890232f2SAndroid Build Coastguard Worker         }
585*890232f2SAndroid Build Coastguard Worker 
586*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_ArraySegment_Default_Throws()587*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_ArraySegment_Default_Throws()
588*890232f2SAndroid Build Coastguard Worker         {
589*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
590*890232f2SAndroid Build Coastguard Worker 
591*890232f2SAndroid Build Coastguard Worker             // Construct the data array
592*890232f2SAndroid Build Coastguard Worker             ArraySegment<float> data = default;
593*890232f2SAndroid Build Coastguard Worker 
594*890232f2SAndroid Build Coastguard Worker             Assert.Throws<ArgumentNullException>(() => fbb.Add(data));
595*890232f2SAndroid Build Coastguard Worker         }
596*890232f2SAndroid Build Coastguard Worker 
597*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_ArraySegment_UnsupportedType_Throws()598*890232f2SAndroid Build Coastguard Worker         public unsafe void FlatBufferBuilder_Add_ArraySegment_UnsupportedType_Throws()
599*890232f2SAndroid Build Coastguard Worker         {
600*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
601*890232f2SAndroid Build Coastguard Worker 
602*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
603*890232f2SAndroid Build Coastguard Worker 
604*890232f2SAndroid Build Coastguard Worker             // Construct the data array
605*890232f2SAndroid Build Coastguard Worker             var array = new DummyStruct[10];
606*890232f2SAndroid Build Coastguard Worker             var data = new ArraySegment<DummyStruct>(array);
607*890232f2SAndroid Build Coastguard Worker             Assert.Throws<ArgumentException>(() => fbb.Add(data));
608*890232f2SAndroid Build Coastguard Worker         }
609*890232f2SAndroid Build Coastguard Worker 
610*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_ArraySegment_Empty_Noop()611*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_ArraySegment_Empty_Noop()
612*890232f2SAndroid Build Coastguard Worker         {
613*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
614*890232f2SAndroid Build Coastguard Worker 
615*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
616*890232f2SAndroid Build Coastguard Worker 
617*890232f2SAndroid Build Coastguard Worker             // Construct the data array
618*890232f2SAndroid Build Coastguard Worker             var array = new float[10];
619*890232f2SAndroid Build Coastguard Worker             var data = new ArraySegment<float>(array, 5, 0);
620*890232f2SAndroid Build Coastguard Worker             fbb.Add(data);
621*890232f2SAndroid Build Coastguard Worker 
622*890232f2SAndroid Build Coastguard Worker             // Make sure the offset didn't change since nothing
623*890232f2SAndroid Build Coastguard Worker             // was really added
624*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
625*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
626*890232f2SAndroid Build Coastguard Worker         }
627*890232f2SAndroid Build Coastguard Worker 
628*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_IntPtr_Zero_Throws()629*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_IntPtr_Zero_Throws()
630*890232f2SAndroid Build Coastguard Worker         {
631*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
632*890232f2SAndroid Build Coastguard Worker 
633*890232f2SAndroid Build Coastguard Worker             // Construct the data array
634*890232f2SAndroid Build Coastguard Worker             var data = IntPtr.Zero;
635*890232f2SAndroid Build Coastguard Worker             var length = 100;
636*890232f2SAndroid Build Coastguard Worker 
637*890232f2SAndroid Build Coastguard Worker             Assert.Throws<ArgumentNullException>(() => fbb.Add<float>(data, length));
638*890232f2SAndroid Build Coastguard Worker         }
639*890232f2SAndroid Build Coastguard Worker 
640*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_IntPtr_SizeNegative_Throws()641*890232f2SAndroid Build Coastguard Worker         public unsafe void FlatBufferBuilder_Add_IntPtr_SizeNegative_Throws()
642*890232f2SAndroid Build Coastguard Worker         {
643*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
644*890232f2SAndroid Build Coastguard Worker 
645*890232f2SAndroid Build Coastguard Worker             // Construct the data array
646*890232f2SAndroid Build Coastguard Worker             var array = new float[10];
647*890232f2SAndroid Build Coastguard Worker             fixed(float* ptr = array)
648*890232f2SAndroid Build Coastguard Worker             {
649*890232f2SAndroid Build Coastguard Worker                 var data = (IntPtr)ptr;
650*890232f2SAndroid Build Coastguard Worker                 var length = -1;
651*890232f2SAndroid Build Coastguard Worker                 Assert.Throws<ArgumentOutOfRangeException>(() => fbb.Add<float>(data, length));
652*890232f2SAndroid Build Coastguard Worker             }
653*890232f2SAndroid Build Coastguard Worker         }
654*890232f2SAndroid Build Coastguard Worker 
655*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_IntPtr_Zero_Empty_Noop()656*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_IntPtr_Zero_Empty_Noop()
657*890232f2SAndroid Build Coastguard Worker         {
658*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
659*890232f2SAndroid Build Coastguard Worker 
660*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
661*890232f2SAndroid Build Coastguard Worker 
662*890232f2SAndroid Build Coastguard Worker             // Construct the data array
663*890232f2SAndroid Build Coastguard Worker             var data = IntPtr.Zero;
664*890232f2SAndroid Build Coastguard Worker             var length = 0;
665*890232f2SAndroid Build Coastguard Worker 
666*890232f2SAndroid Build Coastguard Worker             fbb.Add<float>(data, length);
667*890232f2SAndroid Build Coastguard Worker 
668*890232f2SAndroid Build Coastguard Worker             // make sure that a length of 0 doesn't throw also if ptr is Zero as well
669*890232f2SAndroid Build Coastguard Worker             // and that nothing was really added
670*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
671*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
672*890232f2SAndroid Build Coastguard Worker         }
673*890232f2SAndroid Build Coastguard Worker 
674*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_IntPtr_Empty_Noop()675*890232f2SAndroid Build Coastguard Worker         public unsafe void FlatBufferBuilder_Add_IntPtr_Empty_Noop()
676*890232f2SAndroid Build Coastguard Worker         {
677*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
678*890232f2SAndroid Build Coastguard Worker 
679*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
680*890232f2SAndroid Build Coastguard Worker 
681*890232f2SAndroid Build Coastguard Worker             // Construct the data array
682*890232f2SAndroid Build Coastguard Worker             var array = new float[10];
683*890232f2SAndroid Build Coastguard Worker             fixed(float* ptr = array)
684*890232f2SAndroid Build Coastguard Worker             {
685*890232f2SAndroid Build Coastguard Worker                 var data = (IntPtr)ptr;
686*890232f2SAndroid Build Coastguard Worker                 var length = 0;
687*890232f2SAndroid Build Coastguard Worker                 fbb.Add<float>(data, length);
688*890232f2SAndroid Build Coastguard Worker             }
689*890232f2SAndroid Build Coastguard Worker 
690*890232f2SAndroid Build Coastguard Worker             // Make sure the offset didn't change since nothing
691*890232f2SAndroid Build Coastguard Worker             // was really added
692*890232f2SAndroid Build Coastguard Worker             var endOffset = fbb.Offset;
693*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(endOffset, storedOffset);
694*890232f2SAndroid Build Coastguard Worker         }
695*890232f2SAndroid Build Coastguard Worker 
696*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_IntPtr_SizeInBytesNotMatchingDataType_Throws()697*890232f2SAndroid Build Coastguard Worker         public unsafe void FlatBufferBuilder_Add_IntPtr_SizeInBytesNotMatchingDataType_Throws()
698*890232f2SAndroid Build Coastguard Worker         {
699*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
700*890232f2SAndroid Build Coastguard Worker 
701*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
702*890232f2SAndroid Build Coastguard Worker 
703*890232f2SAndroid Build Coastguard Worker             // Construct the data array
704*890232f2SAndroid Build Coastguard Worker             var array = new float[10];
705*890232f2SAndroid Build Coastguard Worker             fixed(float* ptr = array)
706*890232f2SAndroid Build Coastguard Worker             {
707*890232f2SAndroid Build Coastguard Worker                 const int invalidBytes = 1;
708*890232f2SAndroid Build Coastguard Worker                 var data = (IntPtr)ptr;
709*890232f2SAndroid Build Coastguard Worker                 // add some invalid bytes to the length
710*890232f2SAndroid Build Coastguard Worker                 var length = 2 * sizeof(float) + invalidBytes;
711*890232f2SAndroid Build Coastguard Worker 
712*890232f2SAndroid Build Coastguard Worker                 Assert.Throws<ArgumentException>(() => fbb.Add<float>(data, length));
713*890232f2SAndroid Build Coastguard Worker             }
714*890232f2SAndroid Build Coastguard Worker         }
715*890232f2SAndroid Build Coastguard Worker 
716*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_IntPtr_UnsupportedType_Throws()717*890232f2SAndroid Build Coastguard Worker         public unsafe void FlatBufferBuilder_Add_IntPtr_UnsupportedType_Throws()
718*890232f2SAndroid Build Coastguard Worker         {
719*890232f2SAndroid Build Coastguard Worker             var fbb = CreateBuffer(false);
720*890232f2SAndroid Build Coastguard Worker 
721*890232f2SAndroid Build Coastguard Worker             var storedOffset = fbb.Offset;
722*890232f2SAndroid Build Coastguard Worker 
723*890232f2SAndroid Build Coastguard Worker             // Construct the data array
724*890232f2SAndroid Build Coastguard Worker             var array = new DummyStruct[10];
725*890232f2SAndroid Build Coastguard Worker             fixed(DummyStruct* ptr = array)
726*890232f2SAndroid Build Coastguard Worker             {
727*890232f2SAndroid Build Coastguard Worker                 var data = (IntPtr)ptr;
728*890232f2SAndroid Build Coastguard Worker                 var length = 10 * sizeof(DummyStruct);
729*890232f2SAndroid Build Coastguard Worker 
730*890232f2SAndroid Build Coastguard Worker                 Assert.Throws<ArgumentException>(() => fbb.Add<DummyStruct>(data, length));
731*890232f2SAndroid Build Coastguard Worker             }
732*890232f2SAndroid Build Coastguard Worker         }
733*890232f2SAndroid Build Coastguard Worker 
734*890232f2SAndroid Build Coastguard Worker         private struct DummyStruct
735*890232f2SAndroid Build Coastguard Worker         {
736*890232f2SAndroid Build Coastguard Worker             int value;
737*890232f2SAndroid Build Coastguard Worker         }
738*890232f2SAndroid Build Coastguard Worker 
739*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Add_null_String()740*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Add_null_String()
741*890232f2SAndroid Build Coastguard Worker         {
742*890232f2SAndroid Build Coastguard Worker             var fbb = new FlatBufferBuilder(16);
743*890232f2SAndroid Build Coastguard Worker             string s = null;
744*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(fbb.CreateSharedString(s).Value, 0);
745*890232f2SAndroid Build Coastguard Worker             Assert.AreEqual(fbb.CreateString(s).Value, 0);
746*890232f2SAndroid Build Coastguard Worker         }
747*890232f2SAndroid Build Coastguard Worker 
748*890232f2SAndroid Build Coastguard Worker         [FlatBuffersTestMethod]
FlatBufferBuilder_Empty_Builder()749*890232f2SAndroid Build Coastguard Worker         public void FlatBufferBuilder_Empty_Builder()
750*890232f2SAndroid Build Coastguard Worker         {
751*890232f2SAndroid Build Coastguard Worker             var fbb = new FlatBufferBuilder(16);
752*890232f2SAndroid Build Coastguard Worker             var str = "Hello";
753*890232f2SAndroid Build Coastguard Worker             var flatbuffer = "Flatbuffers!";
754*890232f2SAndroid Build Coastguard Worker             var strOffset = fbb.CreateSharedString(str);
755*890232f2SAndroid Build Coastguard Worker             var flatbufferOffset = fbb.CreateSharedString(flatbuffer);
756*890232f2SAndroid Build Coastguard Worker             fbb.Clear();
757*890232f2SAndroid Build Coastguard Worker             var flatbufferOffset2 = fbb.CreateSharedString(flatbuffer);
758*890232f2SAndroid Build Coastguard Worker             var strOffset2 = fbb.CreateSharedString(str);
759*890232f2SAndroid Build Coastguard Worker             Assert.IsFalse(strOffset.Value == strOffset2.Value);
760*890232f2SAndroid Build Coastguard Worker             Assert.IsFalse(flatbufferOffset.Value == flatbufferOffset2.Value);
761*890232f2SAndroid Build Coastguard Worker         }
762*890232f2SAndroid Build Coastguard Worker     }
763*890232f2SAndroid Build Coastguard Worker }
764