xref: /aosp_15_r20/external/protobuf/php/tests/test_util.php (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker<?php
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestEnum;
4*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestMessage;
5*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestMessage\Sub;
6*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestPackedMessage;
7*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestUnpackedMessage;
8*1b3f573fSAndroid Build Coastguard Worker
9*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_FLOAT_DIFF', 0.000001);
10*1b3f573fSAndroid Build Coastguard Worker
11*1b3f573fSAndroid Build Coastguard Workerif (PHP_INT_SIZE == 8) {
12*1b3f573fSAndroid Build Coastguard Worker    define('MAX_INT_STRING', '9223372036854775807');
13*1b3f573fSAndroid Build Coastguard Worker    define('MAX_INT_UPPER_STRING', '9223372036854775808');
14*1b3f573fSAndroid Build Coastguard Worker} else {
15*1b3f573fSAndroid Build Coastguard Worker    define('MAX_INT_STRING', '2147483647');
16*1b3f573fSAndroid Build Coastguard Worker    define('MAX_INT_UPPER_STRING', '2147483648');
17*1b3f573fSAndroid Build Coastguard Worker}
18*1b3f573fSAndroid Build Coastguard Worker
19*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_INT32', 2147483647);
20*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_INT32_FLOAT', 2147483647.0);
21*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_INT32_STRING', '2147483647');
22*1b3f573fSAndroid Build Coastguard Worker
23*1b3f573fSAndroid Build Coastguard Workerdefine('MIN_INT32', (int)-2147483648);
24*1b3f573fSAndroid Build Coastguard Workerdefine('MIN_INT32_FLOAT', -2147483648.0);
25*1b3f573fSAndroid Build Coastguard Workerdefine('MIN_INT32_STRING', '-2147483648');
26*1b3f573fSAndroid Build Coastguard Worker
27*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_UINT32', 4294967295);
28*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_UINT32_FLOAT', 4294967295.0);
29*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_UINT32_STRING', '4294967295');
30*1b3f573fSAndroid Build Coastguard Worker
31*1b3f573fSAndroid Build Coastguard Workerdefine('MIN_UINT32', (int)-2147483648);
32*1b3f573fSAndroid Build Coastguard Workerdefine('MIN_UINT32_FLOAT', -2147483648.0);
33*1b3f573fSAndroid Build Coastguard Workerdefine('MIN_UINT32_STRING', '-2147483648');
34*1b3f573fSAndroid Build Coastguard Worker
35*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_INT64_STRING',  '9223372036854775807');
36*1b3f573fSAndroid Build Coastguard Workerdefine('MIN_INT64_STRING',  '-9223372036854775808');
37*1b3f573fSAndroid Build Coastguard Workerdefine('MAX_UINT64_STRING', '-9223372036854775808');
38*1b3f573fSAndroid Build Coastguard Worker
39*1b3f573fSAndroid Build Coastguard Workerif (PHP_INT_SIZE === 8) {
40*1b3f573fSAndroid Build Coastguard Worker    define('MAX_INT64',  (int)9223372036854775807);
41*1b3f573fSAndroid Build Coastguard Worker    define('MIN_INT64',  (int)-9223372036854775808);
42*1b3f573fSAndroid Build Coastguard Worker    define('MAX_UINT64', (int)-9223372036854775808);
43*1b3f573fSAndroid Build Coastguard Worker} else {
44*1b3f573fSAndroid Build Coastguard Worker    define('MAX_INT64', MAX_INT64_STRING);
45*1b3f573fSAndroid Build Coastguard Worker    define('MIN_INT64', MIN_INT64_STRING);
46*1b3f573fSAndroid Build Coastguard Worker    define('MAX_UINT64', MAX_UINT64_STRING);
47*1b3f573fSAndroid Build Coastguard Worker}
48*1b3f573fSAndroid Build Coastguard Worker
49*1b3f573fSAndroid Build Coastguard Workerclass TestUtil
50*1b3f573fSAndroid Build Coastguard Worker{
51*1b3f573fSAndroid Build Coastguard Worker
52*1b3f573fSAndroid Build Coastguard Worker    public static function setTestMessage(TestMessage $m)
53*1b3f573fSAndroid Build Coastguard Worker    {
54*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalInt32(-42);
55*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalInt64(-43);
56*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalUint32(42);
57*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalUint64(43);
58*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSint32(-44);
59*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSint64(-45);
60*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalFixed32(46);
61*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalFixed64(47);
62*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSfixed32(-46);
63*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSfixed64(-47);
64*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalFloat(1.5);
65*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalDouble(1.6);
66*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalBool(true);
67*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalString('a');
68*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalBytes('bbbb');
69*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalEnum(TestEnum::ONE);
70*1b3f573fSAndroid Build Coastguard Worker        $sub = new Sub();
71*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalMessage($sub);
72*1b3f573fSAndroid Build Coastguard Worker        $m->getOptionalMessage()->SetA(33);
73*1b3f573fSAndroid Build Coastguard Worker
74*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt32',    -42);
75*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt64',    -43);
76*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint32',    42);
77*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint64',    43);
78*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint32',   -44);
79*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint64',   -45);
80*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed32',   46);
81*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed64',   47);
82*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed32', -46);
83*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed64', -47);
84*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFloat',    1.5);
85*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedDouble',   1.6);
86*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBool',     true);
87*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedString',   'a');
88*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBytes',    'bbbb');
89*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedEnum',     TestEnum::ZERO);
90*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedMessage',  new Sub());
91*1b3f573fSAndroid Build Coastguard Worker        $m->getRepeatedMessage()[0]->setA(34);
92*1b3f573fSAndroid Build Coastguard Worker
93*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt32',    -52);
94*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt64',    -53);
95*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint32',    52);
96*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint64',    53);
97*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint32',   -54);
98*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint64',   -55);
99*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed32',   56);
100*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed64',   57);
101*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed32', -56);
102*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed64', -57);
103*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFloat',    2.5);
104*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedDouble',   2.6);
105*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBool',     false);
106*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedString',   'c');
107*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBytes',    'dddd');
108*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedEnum',     TestEnum::ONE);
109*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedMessage',  new Sub());
110*1b3f573fSAndroid Build Coastguard Worker        $m->getRepeatedMessage()[1]->SetA(35);
111*1b3f573fSAndroid Build Coastguard Worker
112*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Int32', -62, -62);
113*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt64Int64', -63, -63);
114*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapUint32Uint32', 62, 62);
115*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapUint64Uint64', 63, 63);
116*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSint32Sint32', -64, -64);
117*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSint64Sint64', -65, -65);
118*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapFixed32Fixed32', 66, 66);
119*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapFixed64Fixed64', 67, 67);
120*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSfixed32Sfixed32', -68, -68);
121*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSfixed64Sfixed64', -69, -69);
122*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Float', 1, 3.5);
123*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Double', 1, 3.6);
124*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapBoolBool', true, true);
125*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapStringString', 'e', 'e');
126*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Bytes', 1, 'ffff');
127*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Enum', 1, TestEnum::ONE);
128*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Message', 1, new Sub());
129*1b3f573fSAndroid Build Coastguard Worker        $m->getMapInt32Message()[1]->SetA(36);
130*1b3f573fSAndroid Build Coastguard Worker    }
131*1b3f573fSAndroid Build Coastguard Worker
132*1b3f573fSAndroid Build Coastguard Worker    public static function setTestMessage2(TestMessage $m)
133*1b3f573fSAndroid Build Coastguard Worker    {
134*1b3f573fSAndroid Build Coastguard Worker        $sub = new Sub();
135*1b3f573fSAndroid Build Coastguard Worker
136*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalInt32(-142);
137*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalInt64(-143);
138*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalUint32(142);
139*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalUint64(143);
140*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSint32(-144);
141*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSint64(-145);
142*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalFixed32(146);
143*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalFixed64(147);
144*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSfixed32(-146);
145*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalSfixed64(-147);
146*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalFloat(11.5);
147*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalDouble(11.6);
148*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalBool(true);
149*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalString('aa');
150*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalBytes('bb');
151*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalEnum(TestEnum::TWO);
152*1b3f573fSAndroid Build Coastguard Worker        $m->setOptionalMessage($sub);
153*1b3f573fSAndroid Build Coastguard Worker        $m->getOptionalMessage()->SetA(133);
154*1b3f573fSAndroid Build Coastguard Worker
155*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt32',    -142);
156*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt64',    -143);
157*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint32',    142);
158*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint64',    143);
159*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint32',   -144);
160*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint64',   -145);
161*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed32',   146);
162*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed64',   147);
163*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed32', -146);
164*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed64', -147);
165*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFloat',    11.5);
166*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedDouble',   11.6);
167*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBool',     false);
168*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedString',   'aa');
169*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBytes',    'bb');
170*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedEnum',     TestEnum::TWO);
171*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedMessage',  new Sub());
172*1b3f573fSAndroid Build Coastguard Worker        $m->getRepeatedMessage()[0]->setA(134);
173*1b3f573fSAndroid Build Coastguard Worker
174*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Int32', -62, -162);
175*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt64Int64', -63, -163);
176*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapUint32Uint32', 62, 162);
177*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapUint64Uint64', 63, 163);
178*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSint32Sint32', -64, -164);
179*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSint64Sint64', -65, -165);
180*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapFixed32Fixed32', 66, 166);
181*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapFixed64Fixed64', 67, 167);
182*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSfixed32Sfixed32', -68, -168);
183*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSfixed64Sfixed64', -69, -169);
184*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Float', 1, 13.5);
185*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Double', 1, 13.6);
186*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapBoolBool', true, false);
187*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapStringString', 'e', 'ee');
188*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Bytes', 1, 'ff');
189*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Enum', 1, TestEnum::TWO);
190*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Message', 1, new Sub());
191*1b3f573fSAndroid Build Coastguard Worker        $m->getMapInt32Message()[1]->SetA(136);
192*1b3f573fSAndroid Build Coastguard Worker
193*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Int32', -162, -162);
194*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt64Int64', -163, -163);
195*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapUint32Uint32', 162, 162);
196*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapUint64Uint64', 163, 163);
197*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSint32Sint32', -164, -164);
198*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSint64Sint64', -165, -165);
199*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapFixed32Fixed32', 166, 166);
200*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapFixed64Fixed64', 167, 167);
201*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSfixed32Sfixed32', -168, -168);
202*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapSfixed64Sfixed64', -169, -169);
203*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Float', 2, 13.5);
204*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Double', 2, 13.6);
205*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapBoolBool', false, false);
206*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapStringString', 'ee', 'ee');
207*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Bytes', 2, 'ff');
208*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Enum', 2, TestEnum::TWO);
209*1b3f573fSAndroid Build Coastguard Worker        self::kvUpdateHelper($m, 'MapInt32Message', 2, new Sub());
210*1b3f573fSAndroid Build Coastguard Worker        $m->getMapInt32Message()[2]->SetA(136);
211*1b3f573fSAndroid Build Coastguard Worker    }
212*1b3f573fSAndroid Build Coastguard Worker
213*1b3f573fSAndroid Build Coastguard Worker    public static function assertTestMessage(TestMessage $m)
214*1b3f573fSAndroid Build Coastguard Worker    {
215*1b3f573fSAndroid Build Coastguard Worker        if (PHP_INT_SIZE == 4) {
216*1b3f573fSAndroid Build Coastguard Worker            assert('-43' === $m->getOptionalInt64());
217*1b3f573fSAndroid Build Coastguard Worker            assert('43'  === $m->getOptionalUint64());
218*1b3f573fSAndroid Build Coastguard Worker            assert('-45' === $m->getOptionalSint64());
219*1b3f573fSAndroid Build Coastguard Worker            assert('47'  === $m->getOptionalFixed64());
220*1b3f573fSAndroid Build Coastguard Worker            assert('-47' === $m->getOptionalSfixed64());
221*1b3f573fSAndroid Build Coastguard Worker        } else {
222*1b3f573fSAndroid Build Coastguard Worker            assert(-43 === $m->getOptionalInt64());
223*1b3f573fSAndroid Build Coastguard Worker            assert(43  === $m->getOptionalUint64());
224*1b3f573fSAndroid Build Coastguard Worker            assert(-45 === $m->getOptionalSint64());
225*1b3f573fSAndroid Build Coastguard Worker            assert(47  === $m->getOptionalFixed64());
226*1b3f573fSAndroid Build Coastguard Worker            assert(-47 === $m->getOptionalSfixed64());
227*1b3f573fSAndroid Build Coastguard Worker        }
228*1b3f573fSAndroid Build Coastguard Worker        assert(-42 === $m->getOptionalInt32());
229*1b3f573fSAndroid Build Coastguard Worker        assert(42  === $m->getOptionalUint32());
230*1b3f573fSAndroid Build Coastguard Worker        assert(-44 === $m->getOptionalSint32());
231*1b3f573fSAndroid Build Coastguard Worker        assert(46  === $m->getOptionalFixed32());
232*1b3f573fSAndroid Build Coastguard Worker        assert(-46 === $m->getOptionalSfixed32());
233*1b3f573fSAndroid Build Coastguard Worker        assert(1.5 === $m->getOptionalFloat());
234*1b3f573fSAndroid Build Coastguard Worker        assert(1.6 === $m->getOptionalDouble());
235*1b3f573fSAndroid Build Coastguard Worker        assert(true=== $m->getOptionalBool());
236*1b3f573fSAndroid Build Coastguard Worker        assert('a' === $m->getOptionalString());
237*1b3f573fSAndroid Build Coastguard Worker        assert('bbbb' === $m->getOptionalBytes());
238*1b3f573fSAndroid Build Coastguard Worker        assert(TestEnum::ONE === $m->getOptionalEnum());
239*1b3f573fSAndroid Build Coastguard Worker        assert(33  === $m->getOptionalMessage()->getA());
240*1b3f573fSAndroid Build Coastguard Worker
241*1b3f573fSAndroid Build Coastguard Worker        if (PHP_INT_SIZE == 4) {
242*1b3f573fSAndroid Build Coastguard Worker            assert('-43' === $m->getRepeatedInt64()[0]);
243*1b3f573fSAndroid Build Coastguard Worker            assert('43'  === $m->getRepeatedUint64()[0]);
244*1b3f573fSAndroid Build Coastguard Worker            assert('-45' === $m->getRepeatedSint64()[0]);
245*1b3f573fSAndroid Build Coastguard Worker            assert('47'  === $m->getRepeatedFixed64()[0]);
246*1b3f573fSAndroid Build Coastguard Worker            assert('-47' === $m->getRepeatedSfixed64()[0]);
247*1b3f573fSAndroid Build Coastguard Worker        } else {
248*1b3f573fSAndroid Build Coastguard Worker            assert(-43 === $m->getRepeatedInt64()[0]);
249*1b3f573fSAndroid Build Coastguard Worker            assert(43  === $m->getRepeatedUint64()[0]);
250*1b3f573fSAndroid Build Coastguard Worker            assert(-45 === $m->getRepeatedSint64()[0]);
251*1b3f573fSAndroid Build Coastguard Worker            assert(47  === $m->getRepeatedFixed64()[0]);
252*1b3f573fSAndroid Build Coastguard Worker            assert(-47 === $m->getRepeatedSfixed64()[0]);
253*1b3f573fSAndroid Build Coastguard Worker        }
254*1b3f573fSAndroid Build Coastguard Worker        assert(-42 === $m->getRepeatedInt32()[0]);
255*1b3f573fSAndroid Build Coastguard Worker        assert(42  === $m->getRepeatedUint32()[0]);
256*1b3f573fSAndroid Build Coastguard Worker        assert(-44 === $m->getRepeatedSint32()[0]);
257*1b3f573fSAndroid Build Coastguard Worker        assert(46  === $m->getRepeatedFixed32()[0]);
258*1b3f573fSAndroid Build Coastguard Worker        assert(-46 === $m->getRepeatedSfixed32()[0]);
259*1b3f573fSAndroid Build Coastguard Worker        assert(1.5 === $m->getRepeatedFloat()[0]);
260*1b3f573fSAndroid Build Coastguard Worker        assert(1.6 === $m->getRepeatedDouble()[0]);
261*1b3f573fSAndroid Build Coastguard Worker        assert(true=== $m->getRepeatedBool()[0]);
262*1b3f573fSAndroid Build Coastguard Worker        assert('a' === $m->getRepeatedString()[0]);
263*1b3f573fSAndroid Build Coastguard Worker        assert('bbbb' === $m->getRepeatedBytes()[0]);
264*1b3f573fSAndroid Build Coastguard Worker        assert(TestEnum::ZERO === $m->getRepeatedEnum()[0]);
265*1b3f573fSAndroid Build Coastguard Worker        assert(34  === $m->getRepeatedMessage()[0]->getA());
266*1b3f573fSAndroid Build Coastguard Worker
267*1b3f573fSAndroid Build Coastguard Worker        if (PHP_INT_SIZE == 4) {
268*1b3f573fSAndroid Build Coastguard Worker            assert('-53' === $m->getRepeatedInt64()[1]);
269*1b3f573fSAndroid Build Coastguard Worker            assert('53'  === $m->getRepeatedUint64()[1]);
270*1b3f573fSAndroid Build Coastguard Worker            assert('-55' === $m->getRepeatedSint64()[1]);
271*1b3f573fSAndroid Build Coastguard Worker            assert('57'  === $m->getRepeatedFixed64()[1]);
272*1b3f573fSAndroid Build Coastguard Worker            assert('-57' === $m->getRepeatedSfixed64()[1]);
273*1b3f573fSAndroid Build Coastguard Worker        } else {
274*1b3f573fSAndroid Build Coastguard Worker            assert(-53 === $m->getRepeatedInt64()[1]);
275*1b3f573fSAndroid Build Coastguard Worker            assert(53  === $m->getRepeatedUint64()[1]);
276*1b3f573fSAndroid Build Coastguard Worker            assert(-55 === $m->getRepeatedSint64()[1]);
277*1b3f573fSAndroid Build Coastguard Worker            assert(57  === $m->getRepeatedFixed64()[1]);
278*1b3f573fSAndroid Build Coastguard Worker            assert(-57 === $m->getRepeatedSfixed64()[1]);
279*1b3f573fSAndroid Build Coastguard Worker        }
280*1b3f573fSAndroid Build Coastguard Worker        assert(-52 === $m->getRepeatedInt32()[1]);
281*1b3f573fSAndroid Build Coastguard Worker        assert(52  === $m->getRepeatedUint32()[1]);
282*1b3f573fSAndroid Build Coastguard Worker        assert(-54 === $m->getRepeatedSint32()[1]);
283*1b3f573fSAndroid Build Coastguard Worker        assert(56  === $m->getRepeatedFixed32()[1]);
284*1b3f573fSAndroid Build Coastguard Worker        assert(-56 === $m->getRepeatedSfixed32()[1]);
285*1b3f573fSAndroid Build Coastguard Worker        assert(2.5 === $m->getRepeatedFloat()[1]);
286*1b3f573fSAndroid Build Coastguard Worker        assert(2.6 === $m->getRepeatedDouble()[1]);
287*1b3f573fSAndroid Build Coastguard Worker        assert(false === $m->getRepeatedBool()[1]);
288*1b3f573fSAndroid Build Coastguard Worker        assert('c' === $m->getRepeatedString()[1]);
289*1b3f573fSAndroid Build Coastguard Worker        assert('dddd' === $m->getRepeatedBytes()[1]);
290*1b3f573fSAndroid Build Coastguard Worker        assert(TestEnum::ONE === $m->getRepeatedEnum()[1]);
291*1b3f573fSAndroid Build Coastguard Worker        assert(35  === $m->getRepeatedMessage()[1]->getA());
292*1b3f573fSAndroid Build Coastguard Worker
293*1b3f573fSAndroid Build Coastguard Worker        if (PHP_INT_SIZE == 4) {
294*1b3f573fSAndroid Build Coastguard Worker            assert('-63' === $m->getMapInt64Int64()['-63']);
295*1b3f573fSAndroid Build Coastguard Worker            assert('63'  === $m->getMapUint64Uint64()['63']);
296*1b3f573fSAndroid Build Coastguard Worker            assert('-65' === $m->getMapSint64Sint64()['-65']);
297*1b3f573fSAndroid Build Coastguard Worker            assert('67'  === $m->getMapFixed64Fixed64()['67']);
298*1b3f573fSAndroid Build Coastguard Worker            assert('-69'  === $m->getMapSfixed64Sfixed64()['-69']);
299*1b3f573fSAndroid Build Coastguard Worker        } else {
300*1b3f573fSAndroid Build Coastguard Worker            assert(-63 === $m->getMapInt64Int64()[-63]);
301*1b3f573fSAndroid Build Coastguard Worker            assert(63  === $m->getMapUint64Uint64()[63]);
302*1b3f573fSAndroid Build Coastguard Worker            assert(-65 === $m->getMapSint64Sint64()[-65]);
303*1b3f573fSAndroid Build Coastguard Worker            assert(67  === $m->getMapFixed64Fixed64()[67]);
304*1b3f573fSAndroid Build Coastguard Worker            assert(-69  === $m->getMapSfixed64Sfixed64()[-69]);
305*1b3f573fSAndroid Build Coastguard Worker        }
306*1b3f573fSAndroid Build Coastguard Worker        assert(-62 === $m->getMapInt32Int32()[-62]);
307*1b3f573fSAndroid Build Coastguard Worker        assert(62  === $m->getMapUint32Uint32()[62]);
308*1b3f573fSAndroid Build Coastguard Worker        assert(-64 === $m->getMapSint32Sint32()[-64]);
309*1b3f573fSAndroid Build Coastguard Worker        assert(66  === $m->getMapFixed32Fixed32()[66]);
310*1b3f573fSAndroid Build Coastguard Worker        assert(-68  === $m->getMapSfixed32Sfixed32()[-68]);
311*1b3f573fSAndroid Build Coastguard Worker        assert(3.5 === $m->getMapInt32Float()[1]);
312*1b3f573fSAndroid Build Coastguard Worker        assert(3.6 === $m->getMapInt32Double()[1]);
313*1b3f573fSAndroid Build Coastguard Worker        assert(true === $m->getMapBoolBool()[true]);
314*1b3f573fSAndroid Build Coastguard Worker        assert('e' === $m->getMapStringString()['e']);
315*1b3f573fSAndroid Build Coastguard Worker        assert('ffff' === $m->getMapInt32Bytes()[1]);
316*1b3f573fSAndroid Build Coastguard Worker        assert(TestEnum::ONE === $m->getMapInt32Enum()[1]);
317*1b3f573fSAndroid Build Coastguard Worker        assert(36  === $m->getMapInt32Message()[1]->GetA());
318*1b3f573fSAndroid Build Coastguard Worker    }
319*1b3f573fSAndroid Build Coastguard Worker
320*1b3f573fSAndroid Build Coastguard Worker    public static function getGoldenTestMessage()
321*1b3f573fSAndroid Build Coastguard Worker    {
322*1b3f573fSAndroid Build Coastguard Worker        return hex2bin(
323*1b3f573fSAndroid Build Coastguard Worker            "08D6FFFFFFFFFFFFFFFF01" .
324*1b3f573fSAndroid Build Coastguard Worker            "10D5FFFFFFFFFFFFFFFF01" .
325*1b3f573fSAndroid Build Coastguard Worker            "182A" .
326*1b3f573fSAndroid Build Coastguard Worker            "202B" .
327*1b3f573fSAndroid Build Coastguard Worker            "2857" .
328*1b3f573fSAndroid Build Coastguard Worker            "3059" .
329*1b3f573fSAndroid Build Coastguard Worker            "3D2E000000" .
330*1b3f573fSAndroid Build Coastguard Worker            "412F00000000000000" .
331*1b3f573fSAndroid Build Coastguard Worker            "4DD2FFFFFF" .
332*1b3f573fSAndroid Build Coastguard Worker            "51D1FFFFFFFFFFFFFF" .
333*1b3f573fSAndroid Build Coastguard Worker            "5D0000C03F" .
334*1b3f573fSAndroid Build Coastguard Worker            "619A9999999999F93F" .
335*1b3f573fSAndroid Build Coastguard Worker            "6801" .
336*1b3f573fSAndroid Build Coastguard Worker            "720161" .
337*1b3f573fSAndroid Build Coastguard Worker            "7A0462626262" .
338*1b3f573fSAndroid Build Coastguard Worker            "800101" .
339*1b3f573fSAndroid Build Coastguard Worker            "8A01020821" .
340*1b3f573fSAndroid Build Coastguard Worker
341*1b3f573fSAndroid Build Coastguard Worker            "FA0114D6FFFFFFFFFFFFFFFF01CCFFFFFFFFFFFFFFFF01" .
342*1b3f573fSAndroid Build Coastguard Worker            "820214D5FFFFFFFFFFFFFFFF01CBFFFFFFFFFFFFFFFF01" .
343*1b3f573fSAndroid Build Coastguard Worker            "8A02022A34" .
344*1b3f573fSAndroid Build Coastguard Worker            "9202022B35" .
345*1b3f573fSAndroid Build Coastguard Worker            "9A0202576B" .
346*1b3f573fSAndroid Build Coastguard Worker            "A20202596D" .
347*1b3f573fSAndroid Build Coastguard Worker            "AA02082E00000038000000" .
348*1b3f573fSAndroid Build Coastguard Worker            "B202102F000000000000003900000000000000" .
349*1b3f573fSAndroid Build Coastguard Worker            "BA0208D2FFFFFFC8FFFFFF" .
350*1b3f573fSAndroid Build Coastguard Worker            "C20210D1FFFFFFFFFFFFFFC7FFFFFFFFFFFFFF" .
351*1b3f573fSAndroid Build Coastguard Worker            "CA02080000C03F00002040" .
352*1b3f573fSAndroid Build Coastguard Worker            "D202109A9999999999F93FCDCCCCCCCCCC0440" .
353*1b3f573fSAndroid Build Coastguard Worker            "DA02020100" .
354*1b3f573fSAndroid Build Coastguard Worker            "E2020161" .
355*1b3f573fSAndroid Build Coastguard Worker            "E2020163" .
356*1b3f573fSAndroid Build Coastguard Worker            "EA020462626262" .
357*1b3f573fSAndroid Build Coastguard Worker            "EA020464646464" .
358*1b3f573fSAndroid Build Coastguard Worker            "F202020001" .
359*1b3f573fSAndroid Build Coastguard Worker            "FA02020822" .
360*1b3f573fSAndroid Build Coastguard Worker            "FA02020823" .
361*1b3f573fSAndroid Build Coastguard Worker
362*1b3f573fSAndroid Build Coastguard Worker            "BA041608C2FFFFFFFFFFFFFFFF0110C2FFFFFFFFFFFFFFFF01" .
363*1b3f573fSAndroid Build Coastguard Worker            "C2041608C1FFFFFFFFFFFFFFFF0110C1FFFFFFFFFFFFFFFF01" .
364*1b3f573fSAndroid Build Coastguard Worker            "CA0404083E103E" .
365*1b3f573fSAndroid Build Coastguard Worker            "D20404083F103F" .
366*1b3f573fSAndroid Build Coastguard Worker            "DA0404087f107F" .
367*1b3f573fSAndroid Build Coastguard Worker            "E20406088101108101" .
368*1b3f573fSAndroid Build Coastguard Worker            "EA040A0D420000001542000000" .
369*1b3f573fSAndroid Build Coastguard Worker            "F20412094300000000000000114300000000000000" .
370*1b3f573fSAndroid Build Coastguard Worker            "FA040A0DBCFFFFFF15BCFFFFFF" .
371*1b3f573fSAndroid Build Coastguard Worker            "82051209BBFFFFFFFFFFFFFF11BBFFFFFFFFFFFFFF" .
372*1b3f573fSAndroid Build Coastguard Worker            "8A050708011500006040" .
373*1b3f573fSAndroid Build Coastguard Worker            "92050B080111CDCCCCCCCCCC0C40" .
374*1b3f573fSAndroid Build Coastguard Worker            "9A050408011001" .
375*1b3f573fSAndroid Build Coastguard Worker            "A205060a0165120165" .
376*1b3f573fSAndroid Build Coastguard Worker            "AA05080801120466666666" .
377*1b3f573fSAndroid Build Coastguard Worker            "B2050408011001" .
378*1b3f573fSAndroid Build Coastguard Worker            "Ba0506080112020824"
379*1b3f573fSAndroid Build Coastguard Worker        );
380*1b3f573fSAndroid Build Coastguard Worker    }
381*1b3f573fSAndroid Build Coastguard Worker
382*1b3f573fSAndroid Build Coastguard Worker    public static function setTestPackedMessage($m)
383*1b3f573fSAndroid Build Coastguard Worker    {
384*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt32', -42);
385*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt32', -52);
386*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt64', -43);
387*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedInt64', -53);
388*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint32', 42);
389*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint32', 52);
390*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint64', 43);
391*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedUint64', 53);
392*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint32', -44);
393*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint32', -54);
394*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint64', -45);
395*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSint64', -55);
396*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed32', 46);
397*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed32', 56);
398*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed64', 47);
399*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFixed64', 57);
400*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed32', -46);
401*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed32', -56);
402*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed64', -47);
403*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedSfixed64', -57);
404*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFloat', 1.5);
405*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedFloat', 2.5);
406*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedDouble', 1.6);
407*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedDouble', 2.6);
408*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBool', true);
409*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedBool', false);
410*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedEnum', TestEnum::ONE);
411*1b3f573fSAndroid Build Coastguard Worker        self::appendHelper($m, 'RepeatedEnum', TestEnum::ZERO);
412*1b3f573fSAndroid Build Coastguard Worker    }
413*1b3f573fSAndroid Build Coastguard Worker
414*1b3f573fSAndroid Build Coastguard Worker    public static function assertTestPackedMessage($m)
415*1b3f573fSAndroid Build Coastguard Worker    {
416*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedInt32()));
417*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedInt64()));
418*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedUint32()));
419*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedUint64()));
420*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedSint32()));
421*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedSint64()));
422*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedFixed32()));
423*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedFixed64()));
424*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedSfixed32()));
425*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedSfixed64()));
426*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedFloat()));
427*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedDouble()));
428*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedBool()));
429*1b3f573fSAndroid Build Coastguard Worker        assert(2 === count($m->getRepeatedEnum()));
430*1b3f573fSAndroid Build Coastguard Worker
431*1b3f573fSAndroid Build Coastguard Worker        assert(-42 === $m->getRepeatedInt32()[0]);
432*1b3f573fSAndroid Build Coastguard Worker        assert(-52 === $m->getRepeatedInt32()[1]);
433*1b3f573fSAndroid Build Coastguard Worker        assert(42  === $m->getRepeatedUint32()[0]);
434*1b3f573fSAndroid Build Coastguard Worker        assert(52  === $m->getRepeatedUint32()[1]);
435*1b3f573fSAndroid Build Coastguard Worker        assert(-44 === $m->getRepeatedSint32()[0]);
436*1b3f573fSAndroid Build Coastguard Worker        assert(-54 === $m->getRepeatedSint32()[1]);
437*1b3f573fSAndroid Build Coastguard Worker        assert(46  === $m->getRepeatedFixed32()[0]);
438*1b3f573fSAndroid Build Coastguard Worker        assert(56  === $m->getRepeatedFixed32()[1]);
439*1b3f573fSAndroid Build Coastguard Worker        assert(-46 === $m->getRepeatedSfixed32()[0]);
440*1b3f573fSAndroid Build Coastguard Worker        assert(-56 === $m->getRepeatedSfixed32()[1]);
441*1b3f573fSAndroid Build Coastguard Worker        assert(1.5 === $m->getRepeatedFloat()[0]);
442*1b3f573fSAndroid Build Coastguard Worker        assert(2.5 === $m->getRepeatedFloat()[1]);
443*1b3f573fSAndroid Build Coastguard Worker        assert(1.6 === $m->getRepeatedDouble()[0]);
444*1b3f573fSAndroid Build Coastguard Worker        assert(2.6 === $m->getRepeatedDouble()[1]);
445*1b3f573fSAndroid Build Coastguard Worker        assert(true  === $m->getRepeatedBool()[0]);
446*1b3f573fSAndroid Build Coastguard Worker        assert(false === $m->getRepeatedBool()[1]);
447*1b3f573fSAndroid Build Coastguard Worker        assert(TestEnum::ONE  === $m->getRepeatedEnum()[0]);
448*1b3f573fSAndroid Build Coastguard Worker        assert(TestEnum::ZERO === $m->getRepeatedEnum()[1]);
449*1b3f573fSAndroid Build Coastguard Worker        if (PHP_INT_SIZE == 4) {
450*1b3f573fSAndroid Build Coastguard Worker            assert('-43' === $m->getRepeatedInt64()[0]);
451*1b3f573fSAndroid Build Coastguard Worker            assert('-53' === $m->getRepeatedInt64()[1]);
452*1b3f573fSAndroid Build Coastguard Worker            assert('43'  === $m->getRepeatedUint64()[0]);
453*1b3f573fSAndroid Build Coastguard Worker            assert('53'  === $m->getRepeatedUint64()[1]);
454*1b3f573fSAndroid Build Coastguard Worker            assert('-45' === $m->getRepeatedSint64()[0]);
455*1b3f573fSAndroid Build Coastguard Worker            assert('-55' === $m->getRepeatedSint64()[1]);
456*1b3f573fSAndroid Build Coastguard Worker            assert('47'  === $m->getRepeatedFixed64()[0]);
457*1b3f573fSAndroid Build Coastguard Worker            assert('57'  === $m->getRepeatedFixed64()[1]);
458*1b3f573fSAndroid Build Coastguard Worker            assert('-47' === $m->getRepeatedSfixed64()[0]);
459*1b3f573fSAndroid Build Coastguard Worker            assert('-57' === $m->getRepeatedSfixed64()[1]);
460*1b3f573fSAndroid Build Coastguard Worker        } else {
461*1b3f573fSAndroid Build Coastguard Worker            assert(-43 === $m->getRepeatedInt64()[0]);
462*1b3f573fSAndroid Build Coastguard Worker            assert(-53 === $m->getRepeatedInt64()[1]);
463*1b3f573fSAndroid Build Coastguard Worker            assert(43  === $m->getRepeatedUint64()[0]);
464*1b3f573fSAndroid Build Coastguard Worker            assert(53  === $m->getRepeatedUint64()[1]);
465*1b3f573fSAndroid Build Coastguard Worker            assert(-45 === $m->getRepeatedSint64()[0]);
466*1b3f573fSAndroid Build Coastguard Worker            assert(-55 === $m->getRepeatedSint64()[1]);
467*1b3f573fSAndroid Build Coastguard Worker            assert(47  === $m->getRepeatedFixed64()[0]);
468*1b3f573fSAndroid Build Coastguard Worker            assert(57  === $m->getRepeatedFixed64()[1]);
469*1b3f573fSAndroid Build Coastguard Worker            assert(-47 === $m->getRepeatedSfixed64()[0]);
470*1b3f573fSAndroid Build Coastguard Worker            assert(-57 === $m->getRepeatedSfixed64()[1]);
471*1b3f573fSAndroid Build Coastguard Worker        }
472*1b3f573fSAndroid Build Coastguard Worker    }
473*1b3f573fSAndroid Build Coastguard Worker
474*1b3f573fSAndroid Build Coastguard Worker    public static function getGoldenTestPackedMessage()
475*1b3f573fSAndroid Build Coastguard Worker    {
476*1b3f573fSAndroid Build Coastguard Worker        return hex2bin(
477*1b3f573fSAndroid Build Coastguard Worker            "D20514D6FFFFFFFFFFFFFFFF01CCFFFFFFFFFFFFFFFF01" .
478*1b3f573fSAndroid Build Coastguard Worker            "DA0514D5FFFFFFFFFFFFFFFF01CBFFFFFFFFFFFFFFFF01" .
479*1b3f573fSAndroid Build Coastguard Worker            "E205022A34" .
480*1b3f573fSAndroid Build Coastguard Worker            "EA05022B35" .
481*1b3f573fSAndroid Build Coastguard Worker            "F20502576B" .
482*1b3f573fSAndroid Build Coastguard Worker            "FA0502596D" .
483*1b3f573fSAndroid Build Coastguard Worker            "8206082E00000038000000" .
484*1b3f573fSAndroid Build Coastguard Worker            "8A06102F000000000000003900000000000000" .
485*1b3f573fSAndroid Build Coastguard Worker            "920608D2FFFFFFC8FFFFFF" .
486*1b3f573fSAndroid Build Coastguard Worker            "9A0610D1FFFFFFFFFFFFFFC7FFFFFFFFFFFFFF" .
487*1b3f573fSAndroid Build Coastguard Worker            "A206080000C03F00002040" .
488*1b3f573fSAndroid Build Coastguard Worker            "AA06109A9999999999F93FCDCCCCCCCCCC0440" .
489*1b3f573fSAndroid Build Coastguard Worker            "B206020100" .
490*1b3f573fSAndroid Build Coastguard Worker            "BA06020100"
491*1b3f573fSAndroid Build Coastguard Worker        );
492*1b3f573fSAndroid Build Coastguard Worker    }
493*1b3f573fSAndroid Build Coastguard Worker
494*1b3f573fSAndroid Build Coastguard Worker    public static function getGoldenTestUnpackedMessage()
495*1b3f573fSAndroid Build Coastguard Worker    {
496*1b3f573fSAndroid Build Coastguard Worker        return hex2bin(
497*1b3f573fSAndroid Build Coastguard Worker            "D005D6FFFFFFFFFFFFFFFF01D005CCFFFFFFFFFFFFFFFF01" .
498*1b3f573fSAndroid Build Coastguard Worker            "D805D5FFFFFFFFFFFFFFFF01D805CBFFFFFFFFFFFFFFFF01" .
499*1b3f573fSAndroid Build Coastguard Worker            "E0052AE00534" .
500*1b3f573fSAndroid Build Coastguard Worker            "E8052BE80535" .
501*1b3f573fSAndroid Build Coastguard Worker            "F00557F0056B" .
502*1b3f573fSAndroid Build Coastguard Worker            "F80559F8056D" .
503*1b3f573fSAndroid Build Coastguard Worker            "85062E000000850638000000" .
504*1b3f573fSAndroid Build Coastguard Worker            "89062F0000000000000089063900000000000000" .
505*1b3f573fSAndroid Build Coastguard Worker            "9506D2FFFFFF9506C8FFFFFF" .
506*1b3f573fSAndroid Build Coastguard Worker            "9906D1FFFFFFFFFFFFFF9906C7FFFFFFFFFFFFFF" .
507*1b3f573fSAndroid Build Coastguard Worker            "A5060000C03FA50600002040" .
508*1b3f573fSAndroid Build Coastguard Worker            "A9069A9999999999F93FA906CDCCCCCCCCCC0440" .
509*1b3f573fSAndroid Build Coastguard Worker            "B00601B00600" .
510*1b3f573fSAndroid Build Coastguard Worker            "B80601B80600"
511*1b3f573fSAndroid Build Coastguard Worker        );
512*1b3f573fSAndroid Build Coastguard Worker    }
513*1b3f573fSAndroid Build Coastguard Worker
514*1b3f573fSAndroid Build Coastguard Worker    private static function appendHelper($obj, $func_suffix, $value)
515*1b3f573fSAndroid Build Coastguard Worker    {
516*1b3f573fSAndroid Build Coastguard Worker        $getter_function = 'get'.$func_suffix;
517*1b3f573fSAndroid Build Coastguard Worker        $setter_function = 'set'.$func_suffix;
518*1b3f573fSAndroid Build Coastguard Worker
519*1b3f573fSAndroid Build Coastguard Worker        $arr = $obj->$getter_function();
520*1b3f573fSAndroid Build Coastguard Worker        $arr[] = $value;
521*1b3f573fSAndroid Build Coastguard Worker        $obj->$setter_function($arr);
522*1b3f573fSAndroid Build Coastguard Worker    }
523*1b3f573fSAndroid Build Coastguard Worker
524*1b3f573fSAndroid Build Coastguard Worker    private static function kvUpdateHelper($obj, $func_suffix, $key, $value)
525*1b3f573fSAndroid Build Coastguard Worker    {
526*1b3f573fSAndroid Build Coastguard Worker        $getter_function = 'get'.$func_suffix;
527*1b3f573fSAndroid Build Coastguard Worker        $setter_function = 'set'.$func_suffix;
528*1b3f573fSAndroid Build Coastguard Worker
529*1b3f573fSAndroid Build Coastguard Worker        $arr = $obj->$getter_function();
530*1b3f573fSAndroid Build Coastguard Worker        $arr[$key] = $value;
531*1b3f573fSAndroid Build Coastguard Worker        $obj->$setter_function($arr);
532*1b3f573fSAndroid Build Coastguard Worker    }
533*1b3f573fSAndroid Build Coastguard Worker}
534