Skip to content

Commit 3a53d85

Browse files
committed
Add expectations for new bundling algorithm
1 parent 752efc0 commit 3a53d85

File tree

7 files changed

+651
-0
lines changed

7 files changed

+651
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
program test.aleo;
2+
3+
struct Position:
4+
x as u32;
5+
y as u32;
6+
7+
struct Entity:
8+
pos as Position;
9+
health as u32;
10+
11+
struct main_0_bundle1:
12+
field_0 as u32;
13+
field_1 as u32;
14+
field_2 as u32;
15+
field_3 as u32;
16+
field_4 as u32;
17+
field_5 as u32;
18+
field_6 as u32;
19+
field_7 as u32;
20+
21+
function main:
22+
cast 10u32 20u32 into r0 as Position;
23+
cast r0 100u32 into r1 as Entity;
24+
cast 30u32 40u32 into r2 as Position;
25+
cast r2 80u32 into r3 as Entity;
26+
cast 1u32 2u32 3u32 into r4 as [u32; 3u32];
27+
cast 4u32 5u32 6u32 into r5 as [u32; 3u32];
28+
cast 7u32 8u32 9u32 into r6 as [u32; 3u32];
29+
cast 10u32 11u32 12u32 13u32 14u32 15u32 16u32 17u32 into r7 as main_0_bundle1;
30+
async main r1 r3 r4 r5 r6 0u32 1u32 2u32 3u32 4u32 5u32 6u32 7u32 8u32 9u32 r7 into r8;
31+
output r8 as test.aleo/main.future;
32+
33+
finalize main:
34+
input r0 as Entity.public;
35+
input r1 as Entity.public;
36+
input r2 as [u32; 3u32].public;
37+
input r3 as [u32; 3u32].public;
38+
input r4 as [u32; 3u32].public;
39+
input r5 as u32.public;
40+
input r6 as u32.public;
41+
input r7 as u32.public;
42+
input r8 as u32.public;
43+
input r9 as u32.public;
44+
input r10 as u32.public;
45+
input r11 as u32.public;
46+
input r12 as u32.public;
47+
input r13 as u32.public;
48+
input r14 as u32.public;
49+
input r15 as main_0_bundle1.public;
50+
assert.eq r0.pos.x 10u32;
51+
assert.eq r0.pos.y 20u32;
52+
assert.eq r0.health 100u32;
53+
assert.eq r1.pos.x 30u32;
54+
assert.eq r1.health 80u32;
55+
assert.eq r2[0u32] 1u32;
56+
assert.eq r3[1u32] 5u32;
57+
assert.eq r4[2u32] 9u32;
58+
add r5 r6 into r16;
59+
add r16 r7 into r17;
60+
add r17 r8 into r18;
61+
add r18 r9 into r19;
62+
add r19 r10 into r20;
63+
add r20 r11 into r21;
64+
add r21 r12 into r22;
65+
add r22 r13 into r23;
66+
add r23 r14 into r24;
67+
add r24 r15.field_0 into r25;
68+
add r25 r15.field_1 into r26;
69+
add r26 r15.field_2 into r27;
70+
add r27 r15.field_3 into r28;
71+
add r28 r15.field_4 into r29;
72+
add r29 r15.field_5 into r30;
73+
add r30 r15.field_6 into r31;
74+
add r31 r15.field_7 into r32;
75+
assert.eq r32 153u32;
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
program test.aleo;
2+
3+
struct first_0_bundle1:
4+
field_0 as u32;
5+
field_1 as u32;
6+
7+
struct second_3_bundle4:
8+
field_0 as u32;
9+
field_1 as u32;
10+
field_2 as u32;
11+
12+
function first:
13+
cast 15u32 16u32 into r0 as first_0_bundle1;
14+
async first 0u32 1u32 2u32 3u32 4u32 5u32 6u32 7u32 8u32 9u32 10u32 11u32 12u32 13u32 14u32 r0 into r1;
15+
output r1 as test.aleo/first.future;
16+
17+
finalize first:
18+
input r0 as u32.public;
19+
input r1 as u32.public;
20+
input r2 as u32.public;
21+
input r3 as u32.public;
22+
input r4 as u32.public;
23+
input r5 as u32.public;
24+
input r6 as u32.public;
25+
input r7 as u32.public;
26+
input r8 as u32.public;
27+
input r9 as u32.public;
28+
input r10 as u32.public;
29+
input r11 as u32.public;
30+
input r12 as u32.public;
31+
input r13 as u32.public;
32+
input r14 as u32.public;
33+
input r15 as first_0_bundle1.public;
34+
add r0 r1 into r16;
35+
add r16 r2 into r17;
36+
add r17 r3 into r18;
37+
add r18 r4 into r19;
38+
add r19 r5 into r20;
39+
add r20 r6 into r21;
40+
add r21 r7 into r22;
41+
add r22 r8 into r23;
42+
add r23 r9 into r24;
43+
add r24 r10 into r25;
44+
add r25 r11 into r26;
45+
add r26 r12 into r27;
46+
add r27 r13 into r28;
47+
add r28 r14 into r29;
48+
add r29 r15.field_0 into r30;
49+
add r30 r15.field_1 into r31;
50+
assert.eq r31 136u32;
51+
52+
function second:
53+
cast 35u32 36u32 37u32 into r0 as second_3_bundle4;
54+
async second 20u32 21u32 22u32 23u32 24u32 25u32 26u32 27u32 28u32 29u32 30u32 31u32 32u32 33u32 34u32 r0 into r1;
55+
output r1 as test.aleo/second.future;
56+
57+
finalize second:
58+
input r0 as u32.public;
59+
input r1 as u32.public;
60+
input r2 as u32.public;
61+
input r3 as u32.public;
62+
input r4 as u32.public;
63+
input r5 as u32.public;
64+
input r6 as u32.public;
65+
input r7 as u32.public;
66+
input r8 as u32.public;
67+
input r9 as u32.public;
68+
input r10 as u32.public;
69+
input r11 as u32.public;
70+
input r12 as u32.public;
71+
input r13 as u32.public;
72+
input r14 as u32.public;
73+
input r15 as second_3_bundle4.public;
74+
add r0 r1 into r16;
75+
add r16 r2 into r17;
76+
add r17 r3 into r18;
77+
add r18 r4 into r19;
78+
add r19 r5 into r20;
79+
add r20 r6 into r21;
80+
add r21 r7 into r22;
81+
add r22 r8 into r23;
82+
add r23 r9 into r24;
83+
add r24 r10 into r25;
84+
add r25 r11 into r26;
85+
add r26 r12 into r27;
86+
add r27 r13 into r28;
87+
add r28 r14 into r29;
88+
add r29 r15.field_0 into r30;
89+
add r30 r15.field_1 into r31;
90+
add r31 r15.field_2 into r32;
91+
assert.eq r32 513u32;
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
program test.aleo;
2+
3+
struct Point:
4+
x as u32;
5+
y as u32;
6+
7+
struct Color:
8+
r as u8;
9+
g as u8;
10+
b as u8;
11+
12+
struct Entity:
13+
id as u32;
14+
health as u32;
15+
active as boolean;
16+
17+
struct main_0_bundle1:
18+
field_0 as Color;
19+
field_1 as Color;
20+
field_2 as Entity;
21+
field_3 as Entity;
22+
field_4 as Entity;
23+
field_5 as Entity;
24+
field_6 as Entity;
25+
field_7 as u32;
26+
field_8 as u32;
27+
field_9 as u32;
28+
field_10 as u32;
29+
field_11 as u32;
30+
field_12 as u32;
31+
field_13 as u32;
32+
field_14 as u32;
33+
field_15 as u32;
34+
35+
struct main_0_bundle3:
36+
field_0 as u32;
37+
field_1 as [u32; 3u32];
38+
field_2 as [u32; 3u32];
39+
field_3 as [u32; 3u32];
40+
field_4 as u32;
41+
field_5 as u32;
42+
field_6 as u32;
43+
field_7 as u32;
44+
field_8 as u32;
45+
field_9 as u32;
46+
field_10 as u32;
47+
field_11 as u32;
48+
field_12 as u32;
49+
field_13 as u32;
50+
field_14 as u32;
51+
field_15 as u32;
52+
53+
struct main_0_bundle5:
54+
field_0 as u32;
55+
field_1 as u32;
56+
field_2 as u32;
57+
field_3 as u32;
58+
field_4 as u32;
59+
field_5 as u32;
60+
field_6 as u32;
61+
field_7 as u32;
62+
63+
function main:
64+
cast 0u32 10u32 into r0 as Point;
65+
cast 1u32 11u32 into r1 as Point;
66+
cast 2u32 12u32 into r2 as Point;
67+
cast 3u32 13u32 into r3 as Point;
68+
cast 4u32 14u32 into r4 as Point;
69+
cast 5u32 15u32 into r5 as Point;
70+
cast 6u32 16u32 into r6 as Point;
71+
cast 7u32 17u32 into r7 as Point;
72+
cast 8u32 18u32 into r8 as Point;
73+
cast 9u32 19u32 into r9 as Point;
74+
cast 255u8 0u8 0u8 into r10 as Color;
75+
cast 0u8 255u8 0u8 into r11 as Color;
76+
cast 0u8 0u8 255u8 into r12 as Color;
77+
cast 128u8 128u8 0u8 into r13 as Color;
78+
cast 0u8 128u8 128u8 into r14 as Color;
79+
cast 100u32 100u32 true into r15 as Entity;
80+
cast 101u32 80u32 true into r16 as Entity;
81+
cast 102u32 60u32 false into r17 as Entity;
82+
cast 103u32 40u32 true into r18 as Entity;
83+
cast 104u32 20u32 false into r19 as Entity;
84+
cast 10u32 11u32 12u32 into r20 as [u32; 3u32];
85+
cast 13u32 14u32 15u32 into r21 as [u32; 3u32];
86+
cast 16u32 17u32 18u32 into r22 as [u32; 3u32];
87+
cast r13 r14 r15 r16 r17 r18 r19 0u32 1u32 2u32 3u32 4u32 5u32 6u32 7u32 8u32 into r23 as main_0_bundle1;
88+
cast 9u32 r20 r21 r22 0u32 1u32 2u32 3u32 4u32 5u32 6u32 7u32 8u32 9u32 10u32 11u32 into r24 as main_0_bundle3;
89+
cast 12u32 13u32 14u32 15u32 16u32 17u32 18u32 19u32 into r25 as main_0_bundle5;
90+
async main r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r23 r24 r25 into r26;
91+
output r26 as test.aleo/main.future;
92+
93+
finalize main:
94+
input r0 as Point.public;
95+
input r1 as Point.public;
96+
input r2 as Point.public;
97+
input r3 as Point.public;
98+
input r4 as Point.public;
99+
input r5 as Point.public;
100+
input r6 as Point.public;
101+
input r7 as Point.public;
102+
input r8 as Point.public;
103+
input r9 as Point.public;
104+
input r10 as Color.public;
105+
input r11 as Color.public;
106+
input r12 as Color.public;
107+
input r13 as main_0_bundle1.public;
108+
input r14 as main_0_bundle3.public;
109+
input r15 as main_0_bundle5.public;
110+
add r0.x r1.x into r16;
111+
add r16 r2.x into r17;
112+
add r17 r3.x into r18;
113+
add r18 r4.x into r19;
114+
add r19 r5.x into r20;
115+
add r20 r6.x into r21;
116+
add r21 r7.x into r22;
117+
add r22 r8.x into r23;
118+
add r23 r9.x into r24;
119+
add r0.y r1.y into r25;
120+
add r25 r2.y into r26;
121+
add r26 r3.y into r27;
122+
add r27 r4.y into r28;
123+
add r28 r5.y into r29;
124+
add r29 r6.y into r30;
125+
add r30 r7.y into r31;
126+
add r31 r8.y into r32;
127+
add r32 r9.y into r33;
128+
cast r10.r into r34 as u32;
129+
cast r11.r into r35 as u32;
130+
add r34 r35 into r36;
131+
cast r12.r into r37 as u32;
132+
add r36 r37 into r38;
133+
cast r13.field_0.r into r39 as u32;
134+
add r38 r39 into r40;
135+
cast r13.field_1.r into r41 as u32;
136+
add r40 r41 into r42;
137+
cast r10.g into r43 as u32;
138+
cast r11.g into r44 as u32;
139+
add r43 r44 into r45;
140+
cast r12.g into r46 as u32;
141+
add r45 r46 into r47;
142+
cast r13.field_0.g into r48 as u32;
143+
add r47 r48 into r49;
144+
cast r13.field_1.g into r50 as u32;
145+
add r49 r50 into r51;
146+
add r13.field_2.health r13.field_3.health into r52;
147+
add r52 r13.field_4.health into r53;
148+
add r53 r13.field_5.health into r54;
149+
add r54 r13.field_6.health into r55;
150+
ternary r13.field_2.active 1u32 0u32 into r56;
151+
ternary r13.field_3.active 1u32 0u32 into r57;
152+
add r56 r57 into r58;
153+
ternary r13.field_4.active 1u32 0u32 into r59;
154+
add r58 r59 into r60;
155+
ternary r13.field_5.active 1u32 0u32 into r61;
156+
add r60 r61 into r62;
157+
ternary r13.field_6.active 1u32 0u32 into r63;
158+
add r62 r63 into r64;
159+
add r13.field_7 r13.field_8 into r65;
160+
add r65 r13.field_9 into r66;
161+
add r66 r13.field_10 into r67;
162+
add r67 r13.field_11 into r68;
163+
add r68 r13.field_12 into r69;
164+
add r69 r13.field_13 into r70;
165+
add r70 r13.field_14 into r71;
166+
add r71 r13.field_15 into r72;
167+
add r72 r14.field_0 into r73;
168+
add r14.field_1[0u32] r14.field_1[1u32] into r74;
169+
add r74 r14.field_2[0u32] into r75;
170+
add r75 r14.field_2[1u32] into r76;
171+
add r76 r14.field_3[0u32] into r77;
172+
add r77 r14.field_3[1u32] into r78;
173+
add r14.field_4 r14.field_5 into r79;
174+
add r79 r14.field_6 into r80;
175+
add r80 r14.field_7 into r81;
176+
add r81 r14.field_8 into r82;
177+
add r82 r14.field_9 into r83;
178+
add r83 r14.field_10 into r84;
179+
add r84 r14.field_11 into r85;
180+
add r85 r14.field_12 into r86;
181+
add r86 r14.field_13 into r87;
182+
add r87 r14.field_14 into r88;
183+
add r88 r14.field_15 into r89;
184+
add r89 r15.field_0 into r90;
185+
add r90 r15.field_1 into r91;
186+
add r91 r15.field_2 into r92;
187+
add r92 r15.field_3 into r93;
188+
add r93 r15.field_4 into r94;
189+
add r94 r15.field_5 into r95;
190+
add r95 r15.field_6 into r96;
191+
add r96 r15.field_7 into r97;
192+
assert.eq r24 45u32;
193+
assert.eq r33 145u32;
194+
assert.eq r42 511u32;
195+
assert.eq r51 511u32;
196+
assert.eq r55 300u32;
197+
assert.eq r64 3u32;
198+
assert.eq r73 45u32;
199+
assert.eq r78 81u32;
200+
assert.eq r97 190u32;

0 commit comments

Comments
 (0)