@@ -233,4 +233,44 @@ describe("Circom Template Inputs Visitor", () => {
233233 expect ( visitor . templateInputs . out . type ) . to . equal ( "output" ) ;
234234 expect ( visitor . templateInputs . out . dimension ) . to . deep . equal ( [ 2 , 4 ] ) ;
235235 } ) ;
236+
237+ it ( "should analyse the Math.circom circuit" , ( ) => {
238+ const data = getData ( "Math.circom" ) ;
239+
240+ const visitor = new CircomTemplateInputsVisitor (
241+ "Math.circom" ,
242+ data . templates [ data . mainComponentInfo . templateName ! ] . context ,
243+ buildVariableContext (
244+ data . templates [ data . mainComponentInfo . templateName ! ] . parameters ,
245+ data . mainComponentInfo . parameters ,
246+ ) ,
247+ ) ;
248+
249+ visitor . startParse ( ) ;
250+
251+ expect ( visitor . errors . length ) . to . equal ( 0 ) ;
252+
253+ expect ( visitor . templateInputs . out1 . type ) . to . equal ( "output" ) ;
254+ expect ( visitor . templateInputs . out1 . dimension ) . to . deep . equal ( [ 13 ] ) ;
255+
256+ expect ( visitor . templateInputs . out2 . type ) . to . equal ( "output" ) ;
257+ expect ( visitor . templateInputs . out2 . dimension ) . to . deep . equal ( [ 16 ] ) ;
258+
259+ expect ( visitor . templateInputs . tmp1 . type ) . to . equal ( "intermediate" ) ;
260+ expect ( visitor . templateInputs . tmp1 . dimension ) . to . deep . equal ( [ 6 , 8 , 2 , 20 ] ) ;
261+
262+ expect ( visitor . templateInputs . tmp2 . type ) . to . equal ( "intermediate" ) ;
263+ expect ( visitor . templateInputs . tmp2 . dimension ) . to . deep . equal ( [ 6 , 2 , 20 ] ) ;
264+
265+ expect ( visitor . templateInputs . tmp3 . type ) . to . equal ( "intermediate" ) ;
266+ expect ( visitor . templateInputs . tmp3 . dimension ) . to . deep . equal ( [ 6 , 2 , 2 , 20 ] ) ;
267+
268+ expect ( visitor . templateInputs . tmp4 . type ) . to . equal ( "intermediate" ) ;
269+ expect ( visitor . templateInputs . tmp4 . dimension ) . to . deep . equal ( [ 5 , 2 , 2 , 20 ] ) ;
270+
271+ expect ( visitor . templateInputs . powers . type ) . to . equal ( "intermediate" ) ;
272+ expect ( visitor . templateInputs . powers . dimension ) . to . deep . equal ( [
273+ 2 , 256 , 2 , 6 ,
274+ ] ) ;
275+ } ) ;
236276} ) ;
0 commit comments