@@ -20,7 +20,7 @@ describe('DynamicArray', () => {
20
20
DynamicFieldArray ,
21
21
( ) => new DynamicFieldArray ( fieldValues )
22
22
) ;
23
- Provable . log ( fieldArray ) ;
23
+ // Provable.log(fieldArray);
24
24
25
25
// Group
26
26
let groupValues = Provable . Array ( Group , 1 ) . fromFields (
@@ -30,19 +30,65 @@ describe('DynamicArray', () => {
30
30
DynamicGroupArray ,
31
31
( ) => new DynamicGroupArray ( groupValues )
32
32
) ;
33
- Provable . log ( groupArray ) ;
33
+ // Provable.log(groupArray);
34
34
35
- // Scalar - Not working because Scalar takes up 255 Fields => Stack overflow
35
+ // Scalar
36
36
let scalarValues = Provable . Array ( CustomScalar , 1 ) . fromFields (
37
37
CustomScalar . fromScalar ( Scalar . random ( ) ) . toFields ( )
38
38
) ;
39
- Provable . log ( scalarValues ) ;
39
+ // Provable.log(scalarValues);
40
40
let scalarArray = Provable . witness (
41
41
DynamicScalarArray ,
42
42
( ) => new DynamicScalarArray ( scalarValues )
43
43
) ;
44
- // Provable.log(Scalar.sizeInFields());
45
- Provable . log ( scalarArray ) ;
44
+ // Provable.log(scalarArray);
46
45
} ) ;
47
46
} ) ;
47
+
48
+ it ( 'Should serialize correctly' , async ( ) => {
49
+ // Field
50
+ let fieldValues = [ Field ( 0 ) , Field ( 1 ) , Field ( 2 ) , Field ( 1 ) ] ;
51
+ let fieldArray = new DynamicFieldArray ( fieldValues ) ;
52
+ let fieldSerialized = fieldArray . toFields ( ) ;
53
+ let fieldDeserialized = DynamicFieldArray . fromFields (
54
+ [ fieldArray . length , fieldSerialized ] . flat ( )
55
+ ) ;
56
+ fieldDeserialized . length . assertEquals ( fieldArray . length ) ;
57
+ for ( let i = 0 ; i < fieldArray . values . length ; i ++ ) {
58
+ ( fieldDeserialized as DynamicFieldArray )
59
+ . get ( Field ( i ) )
60
+ . assertEquals ( fieldArray . get ( Field ( i ) ) ) ;
61
+ }
62
+
63
+ // Group
64
+ let groupValues = [ Group . generator , Group . zero , Group . generator ] ;
65
+ let groupArray = new DynamicGroupArray ( groupValues ) ;
66
+ let groupSerialized = groupArray . toFields ( ) ;
67
+ let groupDeserialized = DynamicGroupArray . fromFields (
68
+ [ groupArray . length , groupSerialized ] . flat ( )
69
+ ) ;
70
+ groupDeserialized . length . assertEquals ( groupArray . length ) ;
71
+ for ( let i = 0 ; i < groupArray . values . length ; i ++ ) {
72
+ ( groupDeserialized as DynamicGroupArray )
73
+ . get ( Field ( i ) )
74
+ . assertEquals ( groupArray . get ( Field ( i ) ) ) ;
75
+ }
76
+
77
+ // Scalar
78
+ let scalarValues = [
79
+ CustomScalar . fromScalar ( Scalar . random ( ) ) ,
80
+ CustomScalar . fromScalar ( Scalar . random ( ) ) ,
81
+ ] ;
82
+ let scalarArray = new DynamicScalarArray ( scalarValues ) ;
83
+ let scalarSerialized = scalarArray . toFields ( ) ;
84
+ let scalarDeserialized = DynamicScalarArray . fromFields (
85
+ [ scalarArray . length , scalarSerialized ] . flat ( )
86
+ ) ;
87
+ scalarDeserialized . length . assertEquals ( scalarArray . length ) ;
88
+ for ( let i = 0 ; i < scalarArray . values . length ; i ++ ) {
89
+ ( scalarDeserialized as DynamicScalarArray )
90
+ . get ( Field ( i ) )
91
+ . assertEquals ( scalarArray . get ( Field ( i ) ) ) ;
92
+ }
93
+ } ) ;
48
94
} ) ;
0 commit comments