/ tests / tests / execution / array_write.adl
array_write.adl
 1  /*
 2  seed = 123456789
 3  min_height = 16
 4  
 5  [case]
 6  program = "test.alpha"
 7  function = "some_assignments"
 8  input = ["false", "false"]
 9  [case]
10  program = "test.alpha"
11  function = "some_assignments"
12  input = ["false", "true"]
13  [case]
14  program = "test.alpha"
15  function = "some_assignments"
16  input = ["true", "false"]
17  [case]
18  program = "test.alpha"
19  function = "some_assignments"
20  input = ["true", "true"]
21  */
22  
23  
24  program test.alpha {
25      struct S {
26          x: u32,
27          y: [u32; 3],
28      }
29  
30      transition some_assignments(public a: bool, public b: bool) -> public [u32; 11] {
31          let arr: [u32; 3] = [0u32, 1u32, 2u32];
32          if a {
33              arr[0u8] = 10u32;
34          }
35  
36          let s: S = S {
37              x: 3u32,
38              y: arr,
39          };
40  
41          let tuple: (S, S) = (s, s);
42  
43          if b {
44              tuple.0.y[0u8] = 20u32;
45              tuple.1.x = 30u32;
46              if a {
47                  tuple.0 = s;
48                  tuple.1.y = [50u32, 60u32, 70u32];
49              }
50          }
51  
52          return [
53              arr[0u8],
54              arr[1u8],
55              arr[2u8],
56              tuple.0.x,
57              tuple.0.y[0u8],
58              tuple.0.y[1u8],
59              tuple.0.y[2u8],
60              tuple.1.x,
61              tuple.1.y[0u8],
62              tuple.1.y[1u8],
63              tuple.1.y[2u8],
64          ];
65          
66      }
67  
68      @noupgrade
69      async constructor() {}
70  }