1*890232f2SAndroid Build Coastguard Workerimport 'dart:typed_data'; 2*890232f2SAndroid Build Coastguard Worker 3*890232f2SAndroid Build Coastguard Workerimport 'package:flat_buffers/flex_buffers.dart' show Builder; 4*890232f2SAndroid Build Coastguard Workerimport 'package:test/test.dart'; 5*890232f2SAndroid Build Coastguard Worker 6*890232f2SAndroid Build Coastguard Workervoid main() { 7*890232f2SAndroid Build Coastguard Worker test('build with single value', () { 8*890232f2SAndroid Build Coastguard Worker { 9*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 10*890232f2SAndroid Build Coastguard Worker flx.addNull(); 11*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [0, 0, 1]); 12*890232f2SAndroid Build Coastguard Worker } 13*890232f2SAndroid Build Coastguard Worker { 14*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 15*890232f2SAndroid Build Coastguard Worker flx.addBool(true); 16*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [1, 104, 1]); 17*890232f2SAndroid Build Coastguard Worker } 18*890232f2SAndroid Build Coastguard Worker { 19*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 20*890232f2SAndroid Build Coastguard Worker flx.addBool(false); 21*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [0, 104, 1]); 22*890232f2SAndroid Build Coastguard Worker } 23*890232f2SAndroid Build Coastguard Worker { 24*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 25*890232f2SAndroid Build Coastguard Worker flx.addInt(1); 26*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [1, 4, 1]); 27*890232f2SAndroid Build Coastguard Worker } 28*890232f2SAndroid Build Coastguard Worker { 29*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 30*890232f2SAndroid Build Coastguard Worker flx.addInt(230); 31*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [230, 0, 5, 2]); 32*890232f2SAndroid Build Coastguard Worker } 33*890232f2SAndroid Build Coastguard Worker { 34*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 35*890232f2SAndroid Build Coastguard Worker flx.addInt(1025); 36*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [1, 4, 5, 2]); 37*890232f2SAndroid Build Coastguard Worker } 38*890232f2SAndroid Build Coastguard Worker { 39*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 40*890232f2SAndroid Build Coastguard Worker flx.addInt(-1025); 41*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [255, 251, 5, 2]); 42*890232f2SAndroid Build Coastguard Worker } 43*890232f2SAndroid Build Coastguard Worker { 44*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 45*890232f2SAndroid Build Coastguard Worker flx.addDouble(0.1); 46*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [154, 153, 153, 153, 153, 153, 185, 63, 15, 8]); 47*890232f2SAndroid Build Coastguard Worker } 48*890232f2SAndroid Build Coastguard Worker { 49*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 50*890232f2SAndroid Build Coastguard Worker flx.addDouble(0.5); 51*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [0, 0, 0, 63, 14, 4]); 52*890232f2SAndroid Build Coastguard Worker } 53*890232f2SAndroid Build Coastguard Worker { 54*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 55*890232f2SAndroid Build Coastguard Worker flx.addString('Maxim'); 56*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [5, 77, 97, 120, 105, 109, 0, 6, 20, 1]); 57*890232f2SAndroid Build Coastguard Worker } 58*890232f2SAndroid Build Coastguard Worker { 59*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 60*890232f2SAndroid Build Coastguard Worker flx.addString('hello '); 61*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), 62*890232f2SAndroid Build Coastguard Worker [10, 104, 101, 108, 108, 111, 32, 240, 159, 152, 177, 0, 11, 20, 1]); 63*890232f2SAndroid Build Coastguard Worker } 64*890232f2SAndroid Build Coastguard Worker }); 65*890232f2SAndroid Build Coastguard Worker 66*890232f2SAndroid Build Coastguard Worker test('build vector', () { 67*890232f2SAndroid Build Coastguard Worker { 68*890232f2SAndroid Build Coastguard Worker var flx = Builder() 69*890232f2SAndroid Build Coastguard Worker ..startVector() 70*890232f2SAndroid Build Coastguard Worker ..addInt(1) 71*890232f2SAndroid Build Coastguard Worker ..addInt(2) 72*890232f2SAndroid Build Coastguard Worker ..end(); 73*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [1, 2, 2, 64, 1]); 74*890232f2SAndroid Build Coastguard Worker } 75*890232f2SAndroid Build Coastguard Worker { 76*890232f2SAndroid Build Coastguard Worker var flx = Builder() 77*890232f2SAndroid Build Coastguard Worker ..startVector() 78*890232f2SAndroid Build Coastguard Worker ..addInt(-1) 79*890232f2SAndroid Build Coastguard Worker ..addInt(256) 80*890232f2SAndroid Build Coastguard Worker ..end(); 81*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [255, 255, 0, 1, 4, 65, 1]); 82*890232f2SAndroid Build Coastguard Worker } 83*890232f2SAndroid Build Coastguard Worker { 84*890232f2SAndroid Build Coastguard Worker var flx = Builder() 85*890232f2SAndroid Build Coastguard Worker ..startVector() 86*890232f2SAndroid Build Coastguard Worker ..addInt(-45) 87*890232f2SAndroid Build Coastguard Worker ..addInt(256000) 88*890232f2SAndroid Build Coastguard Worker ..end(); 89*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [211, 255, 255, 255, 0, 232, 3, 0, 8, 66, 1]); 90*890232f2SAndroid Build Coastguard Worker } 91*890232f2SAndroid Build Coastguard Worker { 92*890232f2SAndroid Build Coastguard Worker var flx = Builder() 93*890232f2SAndroid Build Coastguard Worker ..startVector() 94*890232f2SAndroid Build Coastguard Worker ..addDouble(1.1) 95*890232f2SAndroid Build Coastguard Worker ..addDouble(-256) 96*890232f2SAndroid Build Coastguard Worker ..end(); 97*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [ 98*890232f2SAndroid Build Coastguard Worker 154, 99*890232f2SAndroid Build Coastguard Worker 153, 100*890232f2SAndroid Build Coastguard Worker 153, 101*890232f2SAndroid Build Coastguard Worker 153, 102*890232f2SAndroid Build Coastguard Worker 153, 103*890232f2SAndroid Build Coastguard Worker 153, 104*890232f2SAndroid Build Coastguard Worker 241, 105*890232f2SAndroid Build Coastguard Worker 63, 106*890232f2SAndroid Build Coastguard Worker 0, 107*890232f2SAndroid Build Coastguard Worker 0, 108*890232f2SAndroid Build Coastguard Worker 0, 109*890232f2SAndroid Build Coastguard Worker 0, 110*890232f2SAndroid Build Coastguard Worker 0, 111*890232f2SAndroid Build Coastguard Worker 0, 112*890232f2SAndroid Build Coastguard Worker 112, 113*890232f2SAndroid Build Coastguard Worker 192, 114*890232f2SAndroid Build Coastguard Worker 16, 115*890232f2SAndroid Build Coastguard Worker 75, 116*890232f2SAndroid Build Coastguard Worker 1 117*890232f2SAndroid Build Coastguard Worker ]); 118*890232f2SAndroid Build Coastguard Worker } 119*890232f2SAndroid Build Coastguard Worker { 120*890232f2SAndroid Build Coastguard Worker var flx = Builder() 121*890232f2SAndroid Build Coastguard Worker ..startVector() 122*890232f2SAndroid Build Coastguard Worker ..addInt(1) 123*890232f2SAndroid Build Coastguard Worker ..addInt(2) 124*890232f2SAndroid Build Coastguard Worker ..addInt(4) 125*890232f2SAndroid Build Coastguard Worker ..end(); 126*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [1, 2, 4, 3, 76, 1]); 127*890232f2SAndroid Build Coastguard Worker } 128*890232f2SAndroid Build Coastguard Worker { 129*890232f2SAndroid Build Coastguard Worker var flx = Builder() 130*890232f2SAndroid Build Coastguard Worker ..startVector() 131*890232f2SAndroid Build Coastguard Worker ..addInt(-1) 132*890232f2SAndroid Build Coastguard Worker ..addInt(256) 133*890232f2SAndroid Build Coastguard Worker ..addInt(4) 134*890232f2SAndroid Build Coastguard Worker ..end(); 135*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [255, 255, 0, 1, 4, 0, 6, 77, 1]); 136*890232f2SAndroid Build Coastguard Worker } 137*890232f2SAndroid Build Coastguard Worker { 138*890232f2SAndroid Build Coastguard Worker var flx = Builder() 139*890232f2SAndroid Build Coastguard Worker ..startVector() 140*890232f2SAndroid Build Coastguard Worker ..startVector() 141*890232f2SAndroid Build Coastguard Worker ..addInt(61) 142*890232f2SAndroid Build Coastguard Worker ..end() 143*890232f2SAndroid Build Coastguard Worker ..addInt(64) 144*890232f2SAndroid Build Coastguard Worker ..end(); 145*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [1, 61, 2, 2, 64, 44, 4, 4, 40, 1]); 146*890232f2SAndroid Build Coastguard Worker } 147*890232f2SAndroid Build Coastguard Worker { 148*890232f2SAndroid Build Coastguard Worker var flx = Builder() 149*890232f2SAndroid Build Coastguard Worker ..startVector() 150*890232f2SAndroid Build Coastguard Worker ..addString('foo') 151*890232f2SAndroid Build Coastguard Worker ..addString('bar') 152*890232f2SAndroid Build Coastguard Worker ..addString('baz') 153*890232f2SAndroid Build Coastguard Worker ..end(); 154*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [ 155*890232f2SAndroid Build Coastguard Worker 3, 156*890232f2SAndroid Build Coastguard Worker 102, 157*890232f2SAndroid Build Coastguard Worker 111, 158*890232f2SAndroid Build Coastguard Worker 111, 159*890232f2SAndroid Build Coastguard Worker 0, 160*890232f2SAndroid Build Coastguard Worker 3, 161*890232f2SAndroid Build Coastguard Worker 98, 162*890232f2SAndroid Build Coastguard Worker 97, 163*890232f2SAndroid Build Coastguard Worker 114, 164*890232f2SAndroid Build Coastguard Worker 0, 165*890232f2SAndroid Build Coastguard Worker 3, 166*890232f2SAndroid Build Coastguard Worker 98, 167*890232f2SAndroid Build Coastguard Worker 97, 168*890232f2SAndroid Build Coastguard Worker 122, 169*890232f2SAndroid Build Coastguard Worker 0, 170*890232f2SAndroid Build Coastguard Worker 3, 171*890232f2SAndroid Build Coastguard Worker 15, 172*890232f2SAndroid Build Coastguard Worker 11, 173*890232f2SAndroid Build Coastguard Worker 7, 174*890232f2SAndroid Build Coastguard Worker 3, 175*890232f2SAndroid Build Coastguard Worker 60, 176*890232f2SAndroid Build Coastguard Worker 1 177*890232f2SAndroid Build Coastguard Worker ]); 178*890232f2SAndroid Build Coastguard Worker } 179*890232f2SAndroid Build Coastguard Worker { 180*890232f2SAndroid Build Coastguard Worker var flx = Builder() 181*890232f2SAndroid Build Coastguard Worker ..startVector() 182*890232f2SAndroid Build Coastguard Worker ..addString('foo') 183*890232f2SAndroid Build Coastguard Worker ..addString('bar') 184*890232f2SAndroid Build Coastguard Worker ..addString('baz') 185*890232f2SAndroid Build Coastguard Worker ..addString('foo') 186*890232f2SAndroid Build Coastguard Worker ..addString('bar') 187*890232f2SAndroid Build Coastguard Worker ..addString('baz') 188*890232f2SAndroid Build Coastguard Worker ..end(); 189*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [ 190*890232f2SAndroid Build Coastguard Worker 3, 191*890232f2SAndroid Build Coastguard Worker 102, 192*890232f2SAndroid Build Coastguard Worker 111, 193*890232f2SAndroid Build Coastguard Worker 111, 194*890232f2SAndroid Build Coastguard Worker 0, 195*890232f2SAndroid Build Coastguard Worker 3, 196*890232f2SAndroid Build Coastguard Worker 98, 197*890232f2SAndroid Build Coastguard Worker 97, 198*890232f2SAndroid Build Coastguard Worker 114, 199*890232f2SAndroid Build Coastguard Worker 0, 200*890232f2SAndroid Build Coastguard Worker 3, 201*890232f2SAndroid Build Coastguard Worker 98, 202*890232f2SAndroid Build Coastguard Worker 97, 203*890232f2SAndroid Build Coastguard Worker 122, 204*890232f2SAndroid Build Coastguard Worker 0, 205*890232f2SAndroid Build Coastguard Worker 6, 206*890232f2SAndroid Build Coastguard Worker 15, 207*890232f2SAndroid Build Coastguard Worker 11, 208*890232f2SAndroid Build Coastguard Worker 7, 209*890232f2SAndroid Build Coastguard Worker 18, 210*890232f2SAndroid Build Coastguard Worker 14, 211*890232f2SAndroid Build Coastguard Worker 10, 212*890232f2SAndroid Build Coastguard Worker 6, 213*890232f2SAndroid Build Coastguard Worker 60, 214*890232f2SAndroid Build Coastguard Worker 1 215*890232f2SAndroid Build Coastguard Worker ]); 216*890232f2SAndroid Build Coastguard Worker } 217*890232f2SAndroid Build Coastguard Worker { 218*890232f2SAndroid Build Coastguard Worker var flx = Builder() 219*890232f2SAndroid Build Coastguard Worker ..startVector() 220*890232f2SAndroid Build Coastguard Worker ..addBool(true) 221*890232f2SAndroid Build Coastguard Worker ..addBool(false) 222*890232f2SAndroid Build Coastguard Worker ..addBool(true) 223*890232f2SAndroid Build Coastguard Worker ..end(); 224*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [3, 1, 0, 1, 3, 144, 1]); 225*890232f2SAndroid Build Coastguard Worker } 226*890232f2SAndroid Build Coastguard Worker { 227*890232f2SAndroid Build Coastguard Worker var flx = Builder() 228*890232f2SAndroid Build Coastguard Worker ..startVector() 229*890232f2SAndroid Build Coastguard Worker ..addString('foo') 230*890232f2SAndroid Build Coastguard Worker ..addInt(1) 231*890232f2SAndroid Build Coastguard Worker ..addInt(-5) 232*890232f2SAndroid Build Coastguard Worker ..addDouble(1.3) 233*890232f2SAndroid Build Coastguard Worker ..addBool(true) 234*890232f2SAndroid Build Coastguard Worker ..end(); 235*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [ 236*890232f2SAndroid Build Coastguard Worker 3, 237*890232f2SAndroid Build Coastguard Worker 102, 238*890232f2SAndroid Build Coastguard Worker 111, 239*890232f2SAndroid Build Coastguard Worker 111, 240*890232f2SAndroid Build Coastguard Worker 0, 241*890232f2SAndroid Build Coastguard Worker 0, 242*890232f2SAndroid Build Coastguard Worker 0, 243*890232f2SAndroid Build Coastguard Worker 0, 244*890232f2SAndroid Build Coastguard Worker 5, 245*890232f2SAndroid Build Coastguard Worker 0, 246*890232f2SAndroid Build Coastguard Worker 0, 247*890232f2SAndroid Build Coastguard Worker 0, 248*890232f2SAndroid Build Coastguard Worker 0, 249*890232f2SAndroid Build Coastguard Worker 0, 250*890232f2SAndroid Build Coastguard Worker 0, 251*890232f2SAndroid Build Coastguard Worker 0, 252*890232f2SAndroid Build Coastguard Worker 15, 253*890232f2SAndroid Build Coastguard Worker 0, 254*890232f2SAndroid Build Coastguard Worker 0, 255*890232f2SAndroid Build Coastguard Worker 0, 256*890232f2SAndroid Build Coastguard Worker 0, 257*890232f2SAndroid Build Coastguard Worker 0, 258*890232f2SAndroid Build Coastguard Worker 0, 259*890232f2SAndroid Build Coastguard Worker 0, 260*890232f2SAndroid Build Coastguard Worker 1, 261*890232f2SAndroid Build Coastguard Worker 0, 262*890232f2SAndroid Build Coastguard Worker 0, 263*890232f2SAndroid Build Coastguard Worker 0, 264*890232f2SAndroid Build Coastguard Worker 0, 265*890232f2SAndroid Build Coastguard Worker 0, 266*890232f2SAndroid Build Coastguard Worker 0, 267*890232f2SAndroid Build Coastguard Worker 0, 268*890232f2SAndroid Build Coastguard Worker 251, 269*890232f2SAndroid Build Coastguard Worker 255, 270*890232f2SAndroid Build Coastguard Worker 255, 271*890232f2SAndroid Build Coastguard Worker 255, 272*890232f2SAndroid Build Coastguard Worker 255, 273*890232f2SAndroid Build Coastguard Worker 255, 274*890232f2SAndroid Build Coastguard Worker 255, 275*890232f2SAndroid Build Coastguard Worker 255, 276*890232f2SAndroid Build Coastguard Worker 205, 277*890232f2SAndroid Build Coastguard Worker 204, 278*890232f2SAndroid Build Coastguard Worker 204, 279*890232f2SAndroid Build Coastguard Worker 204, 280*890232f2SAndroid Build Coastguard Worker 204, 281*890232f2SAndroid Build Coastguard Worker 204, 282*890232f2SAndroid Build Coastguard Worker 244, 283*890232f2SAndroid Build Coastguard Worker 63, 284*890232f2SAndroid Build Coastguard Worker 1, 285*890232f2SAndroid Build Coastguard Worker 0, 286*890232f2SAndroid Build Coastguard Worker 0, 287*890232f2SAndroid Build Coastguard Worker 0, 288*890232f2SAndroid Build Coastguard Worker 0, 289*890232f2SAndroid Build Coastguard Worker 0, 290*890232f2SAndroid Build Coastguard Worker 0, 291*890232f2SAndroid Build Coastguard Worker 0, 292*890232f2SAndroid Build Coastguard Worker 20, 293*890232f2SAndroid Build Coastguard Worker 4, 294*890232f2SAndroid Build Coastguard Worker 4, 295*890232f2SAndroid Build Coastguard Worker 15, 296*890232f2SAndroid Build Coastguard Worker 104, 297*890232f2SAndroid Build Coastguard Worker 45, 298*890232f2SAndroid Build Coastguard Worker 43, 299*890232f2SAndroid Build Coastguard Worker 1 300*890232f2SAndroid Build Coastguard Worker ]); 301*890232f2SAndroid Build Coastguard Worker } 302*890232f2SAndroid Build Coastguard Worker }); 303*890232f2SAndroid Build Coastguard Worker 304*890232f2SAndroid Build Coastguard Worker test('build map', () { 305*890232f2SAndroid Build Coastguard Worker { 306*890232f2SAndroid Build Coastguard Worker var flx = Builder() 307*890232f2SAndroid Build Coastguard Worker ..startMap() 308*890232f2SAndroid Build Coastguard Worker ..addKey('a') 309*890232f2SAndroid Build Coastguard Worker ..addInt(12) 310*890232f2SAndroid Build Coastguard Worker ..end(); 311*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [97, 0, 1, 3, 1, 1, 1, 12, 4, 2, 36, 1]); 312*890232f2SAndroid Build Coastguard Worker } 313*890232f2SAndroid Build Coastguard Worker { 314*890232f2SAndroid Build Coastguard Worker var flx = Builder() 315*890232f2SAndroid Build Coastguard Worker ..startMap() 316*890232f2SAndroid Build Coastguard Worker ..addKey('a') 317*890232f2SAndroid Build Coastguard Worker ..addInt(12) 318*890232f2SAndroid Build Coastguard Worker ..addKey('') 319*890232f2SAndroid Build Coastguard Worker ..addInt(45) 320*890232f2SAndroid Build Coastguard Worker ..end(); 321*890232f2SAndroid Build Coastguard Worker expect( 322*890232f2SAndroid Build Coastguard Worker flx.finish(), [97, 0, 0, 2, 2, 5, 2, 1, 2, 45, 12, 4, 4, 4, 36, 1]); 323*890232f2SAndroid Build Coastguard Worker } 324*890232f2SAndroid Build Coastguard Worker { 325*890232f2SAndroid Build Coastguard Worker var flx = Builder() 326*890232f2SAndroid Build Coastguard Worker ..startVector() 327*890232f2SAndroid Build Coastguard Worker ..startMap() 328*890232f2SAndroid Build Coastguard Worker ..addKey('something') 329*890232f2SAndroid Build Coastguard Worker ..addInt(12) 330*890232f2SAndroid Build Coastguard Worker ..end() 331*890232f2SAndroid Build Coastguard Worker ..startMap() 332*890232f2SAndroid Build Coastguard Worker ..addKey('something') 333*890232f2SAndroid Build Coastguard Worker ..addInt(45) 334*890232f2SAndroid Build Coastguard Worker ..end() 335*890232f2SAndroid Build Coastguard Worker ..end(); 336*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [ 337*890232f2SAndroid Build Coastguard Worker 115, 338*890232f2SAndroid Build Coastguard Worker 111, 339*890232f2SAndroid Build Coastguard Worker 109, 340*890232f2SAndroid Build Coastguard Worker 101, 341*890232f2SAndroid Build Coastguard Worker 116, 342*890232f2SAndroid Build Coastguard Worker 104, 343*890232f2SAndroid Build Coastguard Worker 105, 344*890232f2SAndroid Build Coastguard Worker 110, 345*890232f2SAndroid Build Coastguard Worker 103, 346*890232f2SAndroid Build Coastguard Worker 0, 347*890232f2SAndroid Build Coastguard Worker 1, 348*890232f2SAndroid Build Coastguard Worker 11, 349*890232f2SAndroid Build Coastguard Worker 1, 350*890232f2SAndroid Build Coastguard Worker 1, 351*890232f2SAndroid Build Coastguard Worker 1, 352*890232f2SAndroid Build Coastguard Worker 12, 353*890232f2SAndroid Build Coastguard Worker 4, 354*890232f2SAndroid Build Coastguard Worker 6, 355*890232f2SAndroid Build Coastguard Worker 1, 356*890232f2SAndroid Build Coastguard Worker 1, 357*890232f2SAndroid Build Coastguard Worker 45, 358*890232f2SAndroid Build Coastguard Worker 4, 359*890232f2SAndroid Build Coastguard Worker 2, 360*890232f2SAndroid Build Coastguard Worker 8, 361*890232f2SAndroid Build Coastguard Worker 4, 362*890232f2SAndroid Build Coastguard Worker 36, 363*890232f2SAndroid Build Coastguard Worker 36, 364*890232f2SAndroid Build Coastguard Worker 4, 365*890232f2SAndroid Build Coastguard Worker 40, 366*890232f2SAndroid Build Coastguard Worker 1 367*890232f2SAndroid Build Coastguard Worker ]); 368*890232f2SAndroid Build Coastguard Worker } 369*890232f2SAndroid Build Coastguard Worker }); 370*890232f2SAndroid Build Coastguard Worker 371*890232f2SAndroid Build Coastguard Worker test('build blob', () { 372*890232f2SAndroid Build Coastguard Worker { 373*890232f2SAndroid Build Coastguard Worker var flx = Builder()..addBlob(Uint8List.fromList([1, 2, 3]).buffer); 374*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [3, 1, 2, 3, 3, 100, 1]); 375*890232f2SAndroid Build Coastguard Worker } 376*890232f2SAndroid Build Coastguard Worker }); 377*890232f2SAndroid Build Coastguard Worker 378*890232f2SAndroid Build Coastguard Worker test('build from object', () { 379*890232f2SAndroid Build Coastguard Worker expect( 380*890232f2SAndroid Build Coastguard Worker Builder.buildFromObject(Uint8List.fromList([1, 2, 3]).buffer) 381*890232f2SAndroid Build Coastguard Worker .asUint8List(), 382*890232f2SAndroid Build Coastguard Worker [3, 1, 2, 3, 3, 100, 1]); 383*890232f2SAndroid Build Coastguard Worker expect(Builder.buildFromObject(null).asUint8List(), [0, 0, 1]); 384*890232f2SAndroid Build Coastguard Worker expect(Builder.buildFromObject(true).asUint8List(), [1, 104, 1]); 385*890232f2SAndroid Build Coastguard Worker expect(Builder.buildFromObject(false).asUint8List(), [0, 104, 1]); 386*890232f2SAndroid Build Coastguard Worker expect(Builder.buildFromObject(25).asUint8List(), [25, 4, 1]); 387*890232f2SAndroid Build Coastguard Worker expect(Builder.buildFromObject(-250).asUint8List(), [6, 255, 5, 2]); 388*890232f2SAndroid Build Coastguard Worker expect( 389*890232f2SAndroid Build Coastguard Worker Builder.buildFromObject(-2.50).asUint8List(), [0, 0, 32, 192, 14, 4]); 390*890232f2SAndroid Build Coastguard Worker expect(Builder.buildFromObject('Maxim').asUint8List(), 391*890232f2SAndroid Build Coastguard Worker [5, 77, 97, 120, 105, 109, 0, 6, 20, 1]); 392*890232f2SAndroid Build Coastguard Worker expect( 393*890232f2SAndroid Build Coastguard Worker Builder.buildFromObject([1, 3.3, 'max', true, null, false]) 394*890232f2SAndroid Build Coastguard Worker .asUint8List(), 395*890232f2SAndroid Build Coastguard Worker [ 396*890232f2SAndroid Build Coastguard Worker 3, 397*890232f2SAndroid Build Coastguard Worker 109, 398*890232f2SAndroid Build Coastguard Worker 97, 399*890232f2SAndroid Build Coastguard Worker 120, 400*890232f2SAndroid Build Coastguard Worker 0, 401*890232f2SAndroid Build Coastguard Worker 0, 402*890232f2SAndroid Build Coastguard Worker 0, 403*890232f2SAndroid Build Coastguard Worker 0, 404*890232f2SAndroid Build Coastguard Worker 6, 405*890232f2SAndroid Build Coastguard Worker 0, 406*890232f2SAndroid Build Coastguard Worker 0, 407*890232f2SAndroid Build Coastguard Worker 0, 408*890232f2SAndroid Build Coastguard Worker 0, 409*890232f2SAndroid Build Coastguard Worker 0, 410*890232f2SAndroid Build Coastguard Worker 0, 411*890232f2SAndroid Build Coastguard Worker 0, 412*890232f2SAndroid Build Coastguard Worker 1, 413*890232f2SAndroid Build Coastguard Worker 0, 414*890232f2SAndroid Build Coastguard Worker 0, 415*890232f2SAndroid Build Coastguard Worker 0, 416*890232f2SAndroid Build Coastguard Worker 0, 417*890232f2SAndroid Build Coastguard Worker 0, 418*890232f2SAndroid Build Coastguard Worker 0, 419*890232f2SAndroid Build Coastguard Worker 0, 420*890232f2SAndroid Build Coastguard Worker 102, 421*890232f2SAndroid Build Coastguard Worker 102, 422*890232f2SAndroid Build Coastguard Worker 102, 423*890232f2SAndroid Build Coastguard Worker 102, 424*890232f2SAndroid Build Coastguard Worker 102, 425*890232f2SAndroid Build Coastguard Worker 102, 426*890232f2SAndroid Build Coastguard Worker 10, 427*890232f2SAndroid Build Coastguard Worker 64, 428*890232f2SAndroid Build Coastguard Worker 31, 429*890232f2SAndroid Build Coastguard Worker 0, 430*890232f2SAndroid Build Coastguard Worker 0, 431*890232f2SAndroid Build Coastguard Worker 0, 432*890232f2SAndroid Build Coastguard Worker 0, 433*890232f2SAndroid Build Coastguard Worker 0, 434*890232f2SAndroid Build Coastguard Worker 0, 435*890232f2SAndroid Build Coastguard Worker 0, 436*890232f2SAndroid Build Coastguard Worker 1, 437*890232f2SAndroid Build Coastguard Worker 0, 438*890232f2SAndroid Build Coastguard Worker 0, 439*890232f2SAndroid Build Coastguard Worker 0, 440*890232f2SAndroid Build Coastguard Worker 0, 441*890232f2SAndroid Build Coastguard Worker 0, 442*890232f2SAndroid Build Coastguard Worker 0, 443*890232f2SAndroid Build Coastguard Worker 0, 444*890232f2SAndroid Build Coastguard Worker 0, 445*890232f2SAndroid Build Coastguard Worker 0, 446*890232f2SAndroid Build Coastguard Worker 0, 447*890232f2SAndroid Build Coastguard Worker 0, 448*890232f2SAndroid Build Coastguard Worker 0, 449*890232f2SAndroid Build Coastguard Worker 0, 450*890232f2SAndroid Build Coastguard Worker 0, 451*890232f2SAndroid Build Coastguard Worker 0, 452*890232f2SAndroid Build Coastguard Worker 0, 453*890232f2SAndroid Build Coastguard Worker 0, 454*890232f2SAndroid Build Coastguard Worker 0, 455*890232f2SAndroid Build Coastguard Worker 0, 456*890232f2SAndroid Build Coastguard Worker 0, 457*890232f2SAndroid Build Coastguard Worker 0, 458*890232f2SAndroid Build Coastguard Worker 0, 459*890232f2SAndroid Build Coastguard Worker 0, 460*890232f2SAndroid Build Coastguard Worker 4, 461*890232f2SAndroid Build Coastguard Worker 15, 462*890232f2SAndroid Build Coastguard Worker 20, 463*890232f2SAndroid Build Coastguard Worker 104, 464*890232f2SAndroid Build Coastguard Worker 0, 465*890232f2SAndroid Build Coastguard Worker 104, 466*890232f2SAndroid Build Coastguard Worker 54, 467*890232f2SAndroid Build Coastguard Worker 43, 468*890232f2SAndroid Build Coastguard Worker 1 469*890232f2SAndroid Build Coastguard Worker ]); 470*890232f2SAndroid Build Coastguard Worker expect( 471*890232f2SAndroid Build Coastguard Worker Builder.buildFromObject([ 472*890232f2SAndroid Build Coastguard Worker {'something': 12}, 473*890232f2SAndroid Build Coastguard Worker {'something': 45} 474*890232f2SAndroid Build Coastguard Worker ]).asUint8List(), 475*890232f2SAndroid Build Coastguard Worker [ 476*890232f2SAndroid Build Coastguard Worker 115, 477*890232f2SAndroid Build Coastguard Worker 111, 478*890232f2SAndroid Build Coastguard Worker 109, 479*890232f2SAndroid Build Coastguard Worker 101, 480*890232f2SAndroid Build Coastguard Worker 116, 481*890232f2SAndroid Build Coastguard Worker 104, 482*890232f2SAndroid Build Coastguard Worker 105, 483*890232f2SAndroid Build Coastguard Worker 110, 484*890232f2SAndroid Build Coastguard Worker 103, 485*890232f2SAndroid Build Coastguard Worker 0, 486*890232f2SAndroid Build Coastguard Worker 1, 487*890232f2SAndroid Build Coastguard Worker 11, 488*890232f2SAndroid Build Coastguard Worker 1, 489*890232f2SAndroid Build Coastguard Worker 1, 490*890232f2SAndroid Build Coastguard Worker 1, 491*890232f2SAndroid Build Coastguard Worker 12, 492*890232f2SAndroid Build Coastguard Worker 4, 493*890232f2SAndroid Build Coastguard Worker 6, 494*890232f2SAndroid Build Coastguard Worker 1, 495*890232f2SAndroid Build Coastguard Worker 1, 496*890232f2SAndroid Build Coastguard Worker 45, 497*890232f2SAndroid Build Coastguard Worker 4, 498*890232f2SAndroid Build Coastguard Worker 2, 499*890232f2SAndroid Build Coastguard Worker 8, 500*890232f2SAndroid Build Coastguard Worker 4, 501*890232f2SAndroid Build Coastguard Worker 36, 502*890232f2SAndroid Build Coastguard Worker 36, 503*890232f2SAndroid Build Coastguard Worker 4, 504*890232f2SAndroid Build Coastguard Worker 40, 505*890232f2SAndroid Build Coastguard Worker 1 506*890232f2SAndroid Build Coastguard Worker ]); 507*890232f2SAndroid Build Coastguard Worker }); 508*890232f2SAndroid Build Coastguard Worker 509*890232f2SAndroid Build Coastguard Worker test('add double indirectly', () { 510*890232f2SAndroid Build Coastguard Worker var flx = Builder()..addDoubleIndirectly(0.1); 511*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [154, 153, 153, 153, 153, 153, 185, 63, 8, 35, 1]); 512*890232f2SAndroid Build Coastguard Worker }); 513*890232f2SAndroid Build Coastguard Worker 514*890232f2SAndroid Build Coastguard Worker test('add double indirectly to vector with cache', () { 515*890232f2SAndroid Build Coastguard Worker var flx = Builder() 516*890232f2SAndroid Build Coastguard Worker ..startVector() 517*890232f2SAndroid Build Coastguard Worker ..addDoubleIndirectly(0.1, cache: true) 518*890232f2SAndroid Build Coastguard Worker ..addDoubleIndirectly(0.1, cache: true) 519*890232f2SAndroid Build Coastguard Worker ..addDoubleIndirectly(0.1, cache: true) 520*890232f2SAndroid Build Coastguard Worker ..addDoubleIndirectly(0.1, cache: true) 521*890232f2SAndroid Build Coastguard Worker ..end(); 522*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [ 523*890232f2SAndroid Build Coastguard Worker 154, 524*890232f2SAndroid Build Coastguard Worker 153, 525*890232f2SAndroid Build Coastguard Worker 153, 526*890232f2SAndroid Build Coastguard Worker 153, 527*890232f2SAndroid Build Coastguard Worker 153, 528*890232f2SAndroid Build Coastguard Worker 153, 529*890232f2SAndroid Build Coastguard Worker 185, 530*890232f2SAndroid Build Coastguard Worker 63, 531*890232f2SAndroid Build Coastguard Worker 4, 532*890232f2SAndroid Build Coastguard Worker 9, 533*890232f2SAndroid Build Coastguard Worker 10, 534*890232f2SAndroid Build Coastguard Worker 11, 535*890232f2SAndroid Build Coastguard Worker 12, 536*890232f2SAndroid Build Coastguard Worker 35, 537*890232f2SAndroid Build Coastguard Worker 35, 538*890232f2SAndroid Build Coastguard Worker 35, 539*890232f2SAndroid Build Coastguard Worker 35, 540*890232f2SAndroid Build Coastguard Worker 8, 541*890232f2SAndroid Build Coastguard Worker 40, 542*890232f2SAndroid Build Coastguard Worker 1 543*890232f2SAndroid Build Coastguard Worker ]); 544*890232f2SAndroid Build Coastguard Worker }); 545*890232f2SAndroid Build Coastguard Worker 546*890232f2SAndroid Build Coastguard Worker test('add int indirectly', () { 547*890232f2SAndroid Build Coastguard Worker var flx = Builder()..addIntIndirectly(2345234523452345); 548*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [185, 115, 175, 118, 250, 84, 8, 0, 8, 27, 1]); 549*890232f2SAndroid Build Coastguard Worker }); 550*890232f2SAndroid Build Coastguard Worker 551*890232f2SAndroid Build Coastguard Worker test('add int indirectly to vector with cache', () { 552*890232f2SAndroid Build Coastguard Worker var flx = Builder() 553*890232f2SAndroid Build Coastguard Worker ..startVector() 554*890232f2SAndroid Build Coastguard Worker ..addIntIndirectly(2345234523452345, cache: true) 555*890232f2SAndroid Build Coastguard Worker ..addIntIndirectly(2345234523452345, cache: true) 556*890232f2SAndroid Build Coastguard Worker ..addIntIndirectly(2345234523452345, cache: true) 557*890232f2SAndroid Build Coastguard Worker ..addIntIndirectly(2345234523452345, cache: true) 558*890232f2SAndroid Build Coastguard Worker ..end(); 559*890232f2SAndroid Build Coastguard Worker expect(flx.finish(), [ 560*890232f2SAndroid Build Coastguard Worker 185, 561*890232f2SAndroid Build Coastguard Worker 115, 562*890232f2SAndroid Build Coastguard Worker 175, 563*890232f2SAndroid Build Coastguard Worker 118, 564*890232f2SAndroid Build Coastguard Worker 250, 565*890232f2SAndroid Build Coastguard Worker 84, 566*890232f2SAndroid Build Coastguard Worker 8, 567*890232f2SAndroid Build Coastguard Worker 0, 568*890232f2SAndroid Build Coastguard Worker 4, 569*890232f2SAndroid Build Coastguard Worker 9, 570*890232f2SAndroid Build Coastguard Worker 10, 571*890232f2SAndroid Build Coastguard Worker 11, 572*890232f2SAndroid Build Coastguard Worker 12, 573*890232f2SAndroid Build Coastguard Worker 27, 574*890232f2SAndroid Build Coastguard Worker 27, 575*890232f2SAndroid Build Coastguard Worker 27, 576*890232f2SAndroid Build Coastguard Worker 27, 577*890232f2SAndroid Build Coastguard Worker 8, 578*890232f2SAndroid Build Coastguard Worker 40, 579*890232f2SAndroid Build Coastguard Worker 1 580*890232f2SAndroid Build Coastguard Worker ]); 581*890232f2SAndroid Build Coastguard Worker }); 582*890232f2SAndroid Build Coastguard Worker 583*890232f2SAndroid Build Coastguard Worker test('snapshot', () { 584*890232f2SAndroid Build Coastguard Worker var flx = Builder(); 585*890232f2SAndroid Build Coastguard Worker flx.startVector(); 586*890232f2SAndroid Build Coastguard Worker flx.addInt(12); 587*890232f2SAndroid Build Coastguard Worker expect(flx.snapshot().asUint8List(), [1, 12, 1, 44, 1]); 588*890232f2SAndroid Build Coastguard Worker flx.addInt(24); 589*890232f2SAndroid Build Coastguard Worker expect(flx.snapshot().asUint8List(), [12, 24, 2, 64, 1]); 590*890232f2SAndroid Build Coastguard Worker flx.addInt(45); 591*890232f2SAndroid Build Coastguard Worker expect(flx.snapshot().asUint8List(), [12, 24, 45, 3, 76, 1]); 592*890232f2SAndroid Build Coastguard Worker }); 593*890232f2SAndroid Build Coastguard Worker} 594