public class org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering extends java.lang.Object
{
private static final com.fasterxml.jackson.databind.ObjectMapper objectMapper;
public void <init>()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void testRenderingEmptyCollectionInPrettyRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|Person.all()->project([])", "|Person.all()->project(\n  []\n)", v);
return;
}
public void testLambdaWithProjectWithColInPrettyRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|Person.all()->filter(f|$f.name->startsWith(\'ok\') && (true || 3 == 4))->project([col(p|$p.name, \'ok\')])", "|Person.all()->filter(\n  f|$f.name->startsWith(\'ok\') &&\n    (true || (3 == 4))\n)->project(\n  [\n    col(\n      p|$p.name,\n      \'ok\'\n    )\n  ]\n)", v);
return;
}
public void testLambdaWithProjectWithColsInPrettyRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|Person.all()->filter(f|$f.name->startsWith(\'ok\') && (true || 3 == 4))->project([col(p|$p.name, \'ok\'), col(p|$p.name, \'ok2\')])", "|Person.all()->filter(\n  f|$f.name->startsWith(\'ok\') &&\n    (true || (3 == 4))\n)->project(\n  [\n    col(\n      p|$p.name,\n      \'ok\'\n    ),\n    col(\n      p|$p.name,\n      \'ok2\'\n    )\n  ]\n)", v);
return;
}
public void testPrettyRelationLambda()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|Customer.all()->project(~[companyName:x|$x.companyName, companyTitle:x|$x.companyTitle, contactName:x|$x.contactName, faxNumber:x|$x.faxNumber, id:x|$x.id, telephoneNumber:x|$x.telephoneNumber])", "|Customer.all()->project(\n  ~[\n     companyName: x|$x.companyName,\n     companyTitle: x|$x.companyTitle,\n     contactName: x|$x.contactName,\n     faxNumber: x|$x.faxNumber,\n     id: x|$x.id,\n     telephoneNumber: x|$x.telephoneNumber\n   ]\n)", v);
return;
}
public void testLambdaWithIfInPrettyRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|if($this.id == \'testing\',|\'test\',|\'nonTest\')", "|if(\n  $this.id == \'testing\',\n  |\'test\',\n  |\'nonTest\'\n)", v);
return;
}
public void testLambdaWithGroupByInPrettyRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("{|\n   let businessDate = now();\n   model::domain::referenceData::account::FirmAccount.all($businessDate)\n       ->groupBy([x | $x.trader($businessDate).lastName,\n                  x | $x.trader($businessDate).firstName,\n                  x | $x.trader($businessDate).isActive],\n                 [agg(x | $x.trader($businessDate).kerberos, y | $y->uniqueValueOnly())],\n                 [\'Trader/Last Name\',\n                  \'Trader/First Name\',\n                  \'Trader/Is Active\',\n                  \'Trader/Kerberos Distinct Value\']\n       );\n}", "{|\n  let businessDate = now();\n  model::domain::referenceData::account::FirmAccount.all($businessDate)->groupBy(\n    [\n      x|$x.trader($businessDate).lastName,\n      x|$x.trader($businessDate).firstName,\n      x|$x.trader($businessDate).isActive\n    ],\n    [\n      agg(\n        x|$x.trader($businessDate).kerberos,\n        y|$y->uniqueValueOnly()\n      )\n    ],\n    [\n      \'Trader/Last Name\',\n      \'Trader/First Name\',\n      \'Trader/Is Active\',\n      \'Trader/Kerberos Distinct Value\'\n    ]\n  );\n}", v);
return;
}
public void testLambdaWithGroupByWithLatestInPrettyRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("{|\n   let businessDate = now();\n   model::domain::referenceData::account::FirmAccount.all(%latest)\n       ->groupBy([x | $x.trader(%latest).lastName,\n                  x | $x.trader(%latest).firstName,\n                  x | $x.trader(%latest).isActive],\n                 [agg(x | $x.trader(%latest).kerberos, y | $y->uniqueValueOnly()),agg(x | $x.trader(%latest).age, y | $y->average())],\n                 [\'Trader/Last Name\',\n                  \'Trader/First Name\',\n                  \'Trader/Is Active\',\n                  \'Trader/Kerberos Distinct Value\']\n       );\n}", "{|\n  let businessDate = now();\n  model::domain::referenceData::account::FirmAccount.all(%latest)->groupBy(\n    [\n      x|$x.trader(%latest).lastName,\n      x|$x.trader(%latest).firstName,\n      x|$x.trader(%latest).isActive\n    ],\n    [\n      agg(\n        x|$x.trader(%latest).kerberos,\n        y|$y->uniqueValueOnly()\n      ),\n      agg(\n        x|$x.trader(%latest).age,\n        y|$y->average()\n      )\n    ],\n    [\n      \'Trader/Last Name\',\n      \'Trader/First Name\',\n      \'Trader/Is Active\',\n      \'Trader/Kerberos Distinct Value\'\n    ]\n  );\n}", v);
return;
}
public void testLambdaWithGroupByWithLatestInPrettyHTMLRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY_HTML>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("{|\n   let businessDate = now();\n   model::domain::referenceData::account::FirmAccount.all(%latest)\n       ->groupBy([x | $x.trader(%latest).lastName,\n                  x | $x.trader(%latest).firstName,\n                  x | $x.trader(%latest).isActive],\n                 [agg(x | $x.trader(%latest).kerberos, y | $y->uniqueValueOnly()),agg(x | $x.trader(%latest).age, y | $y->average())],\n                 [\'Trader/Last Name\',\n                  \'Trader/First Name\',\n                  \'Trader/Is Active\',\n                  \'Trader/Kerberos Distinct Value\']\n       );\n}", "{|</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>let businessDate = <span class=\'pureGrammar-function\'>now</span>();</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-package\'>model::domain::referenceData::account::</span><span class=\'pureGrammar-packageableElement\'>FirmAccount</span>.<span class=\'pureGrammar-function\'>all</span>(%latest)<span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>groupBy</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>[</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>x</span>|<span class=\'pureGrammar-var\'>$x</span>.<span class=pureGrammar-property>trader</span>(%latest).<span class=pureGrammar-property>lastName</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>x</span>|<span class=\'pureGrammar-var\'>$x</span>.<span class=pureGrammar-property>trader</span>(%latest).<span class=pureGrammar-property>firstName</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>x</span>|<span class=\'pureGrammar-var\'>$x</span>.<span class=pureGrammar-property>trader</span>(%latest).<span class=pureGrammar-property>isActive</span></BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>],</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>[</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-function\'>agg</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>x</span>|<span class=\'pureGrammar-var\'>$x</span>.<span class=pureGrammar-property>trader</span>(%latest).<span class=pureGrammar-property>kerberos</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>y</span>|<span class=\'pureGrammar-var\'>$y</span><span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>uniqueValueOnly</span>()</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-function\'>agg</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>x</span>|<span class=\'pureGrammar-var\'>$x</span>.<span class=pureGrammar-property>trader</span>(%latest).<span class=pureGrammar-property>age</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>y</span>|<span class=\'pureGrammar-var\'>$y</span><span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>average</span>()</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>)</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>],</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>[</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'Trader/Last Name\'</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'Trader/First Name\'</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'Trader/Is Active\'</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'Trader/Kerberos Distinct Value\'</span></BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>]</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>);</BR>\n}", v);
return;
}
public void testComplexGroupByLambdaRoundtripInPrettyRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|test::Person.all()->filter(\n  f|$f.name->startsWith(\'ok\') &&\n    (true || (3 == 4))\n)->groupBy(\n  [],\n  [\n    agg(\n      x|$x.lastName,\n      x|$x->distinct()->someFunc(\n        true,\n        \'someString\',\n        90\n      ) + $x.lastName\n    )\n  ],\n  [\'LastName\']\n)->distinct()->sort(\n  [\n    asc(\'LastName\')\n  ]\n)->take(30)", v);
return;
}
public void testOlapGroupByRendering()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("var: String[1]|Person.all()->filter(\n  p|$p.firstName ==\n    $var\n)->project(\n  [\n    col(\n      p|$p.firstName,\n      \'firstName\'\n    ),\n    col(\n      p|$p.lastName,\n      \'lastName\'\n    ),\n    col(\n      p|$p.lastName->length(),\n      \'age\'\n    )\n  ]\n)->olapGroupBy(\n  [\'firstName\'],\n  desc(\'lastName\'),\n  y|$y->rank(),\n  \'testCol1\'\n)->olapGroupBy(\n  [\'firstName\'],\n  asc(\'lastName\'),\n  \'age\'->func(\n    y|$y->sum()\n  ),\n  \'testCol3\'\n)", v);
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY_HTML>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("var: String[1]|Person.all()->filter(\n  p|$p.firstName ==\n    $var\n)->project(\n  [\n    col(\n      p|$p.firstName,\n      \'firstName\'\n    ),\n    col(\n      p|$p.lastName,\n      \'lastName\'\n    ),\n    col(\n      p|$p.lastName->length(),\n      \'age\'\n    )\n  ]\n)->olapGroupBy(\n  [\'firstName\'],\n  desc(\'lastName\'),\n  y|$y->rank(),\n  \'testCol1\'\n)->olapGroupBy(\n  [\'firstName\'],\n  asc(\'lastName\'),\n  \'age\'->func(\n    y|$y->sum()\n  ),\n  \'testCol3\'\n)", "<span class=\'pureGrammar-var\'>var</span>: <span class=\'pureGrammar-packageableElement\'>String</span>[1]|<span class=\'pureGrammar-packageableElement\'>Person</span>.<span class=\'pureGrammar-function\'>all</span>()<span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>filter</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>p</span>|<span class=\'pureGrammar-var\'>$p</span>.<span class=pureGrammar-property>firstName</span> ==</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>$var</span></BR>\n)<span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>project</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>[</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-function\'>col</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>p</span>|<span class=\'pureGrammar-var\'>$p</span>.<span class=pureGrammar-property>firstName</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'firstName\'</span></BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-function\'>col</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>p</span>|<span class=\'pureGrammar-var\'>$p</span>.<span class=pureGrammar-property>lastName</span>,</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'lastName\'</span></BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-function\'>col</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>p</span>|<span class=\'pureGrammar-var\'>$p</span>.<span class=pureGrammar-property>lastName</span><span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>length</span>(),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'age\'</span></BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>)</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>]</BR>\n)<span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>olapGroupBy</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>[<span class=\'pureGrammar-string\'>\'firstName\'</span>],</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-function\'>desc</span>(<span class=\'pureGrammar-string\'>\'lastName\'</span>),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>y</span>|<span class=\'pureGrammar-var\'>$y</span><span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>rank</span>(),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'testCol1\'</span></BR>\n)<span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>olapGroupBy</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>[<span class=\'pureGrammar-string\'>\'firstName\'</span>],</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-function\'>asc</span>(<span class=\'pureGrammar-string\'>\'lastName\'</span>),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'age\'</span><span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>func</span>(</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-var\'>y</span>|<span class=\'pureGrammar-var\'>$y</span><span class=\'pureGrammar-arrow\'>-></span><span class=\'pureGrammar-function\'>sum</span>()</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span>),</BR>\n<span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-space\'></span><span class=\'pureGrammar-string\'>\'testCol3\'</span></BR>\n)", v);
return;
}
public void testLambdaWithoutSubTypeGraphFetchTree()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|test::Address.all()->graphFetch(\n  #{\n    test::Address{\n      Id\n    }\n  }#\n)->serialize(\n  #{\n    test::Address{\n      Id\n    }\n  }#\n)", v);
return;
}
public void testLambdaWithOnlySubTypeGraphFetchTree()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|test::Address.all()->graphFetch(\n  #{\n    test::Address{\n      ->subType(@test::Street){\n        street\n      }\n    }\n  }#\n)->serialize(\n  #{\n    test::Address{\n      ->subType(@test::Street){\n        street\n      }\n    }\n  }#\n)", v);
return;
}
public void testLambdaWithSubTypeAndPropertyGraphFetchTree()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|test::Address.all()->graphFetch(\n  #{\n    test::Address{\n      Id,\n      ->subType(@test::Street){\n        street\n      }\n    }\n  }#\n)->serialize(\n  #{\n    test::Address{\n      Id,\n      ->subType(@test::Street){\n        street\n      }\n    }\n  }#\n)", v);
return;
}
public void testLambdaWithSubTypeGraphFetchTreeHavingMultipleProperties()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|test::Address.all()->graphFetch(\n  #{\n    test::Address{\n      Id,\n      ->subType(@test::Street){\n        street,\n        Coordinates\n      }\n    }\n  }#\n)->serialize(\n  #{\n    test::Address{\n      Id,\n      ->subType(@test::Street){\n        street,\n        Coordinates\n      }\n    }\n  }#\n)", v);
return;
}
public void testLambdaWithMultipleSubTypeGraphFetchTree()
{
org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @this: org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering;
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>("|test::Address.all()->graphFetch(\n  #{\n    test::Address{\n      Id,\n      ->subType(@test::Street){\n        street,\n        Coordinates\n      },\n      ->subType(@test::City){\n        name\n      }\n    }\n  }#\n)->serialize(\n  #{\n    test::Address{\n      Id,\n      ->subType(@test::Street){\n        street,\n        Coordinates\n      },\n      ->subType(@test::City){\n        name\n      }\n    }\n  }#\n)", v);
return;
}
private static void testLambda(java.lang.String, org.finos.legend.engine.shared.core.api.grammar.RenderStyle)
{
java.lang.String v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.shared.core.api.grammar.RenderStyle;
staticinvoke <org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: void testLambda(java.lang.String,java.lang.String,org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>(v, v, v);
return;
}
private static void testLambda(java.lang.String, java.lang.String, org.finos.legend.engine.shared.core.api.grammar.RenderStyle)
{
org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.Lambda v;
org.finos.legend.engine.language.pure.grammar.'from'.domain.DomainParser v;
org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore$Builder v, v;
java.lang.Object v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.shared.core.api.grammar.RenderStyle;
v = new org.finos.legend.engine.language.pure.grammar.'from'.domain.DomainParser;
specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.domain.DomainParser: void <init>()>();
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.domain.DomainParser: org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.Lambda parseLambda(java.lang.String,java.lang.String,int,int,boolean)>(v, "", 0, 0, 1);
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore$Builder: org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore$Builder newInstance()>();
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore$Builder: org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore$Builder withRenderStyle(org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>(v);
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore$Builder: org.finos.legend.engine.language.pure.grammar.'to'.DEPRECATED_PureGrammarComposerCore build()>();
v = virtualinvoke v.<org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.Lambda: java.lang.Object accept(org.finos.legend.engine.protocol.pure.v.model.valueSpecification.ValueSpecificationVisitor)>(v);
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
return;
}
static void <clinit>()
{
com.fasterxml.jackson.databind.ObjectMapper v;
v = staticinvoke <org.finos.legend.engine.shared.core.ObjectMapperFactory: com.fasterxml.jackson.databind.ObjectMapper getNewStandardObjectMapperWithPureProtocolExtensionSupports()>();
<org.finos.legend.engine.language.pure.grammar.test.roundtrip.TestLambdaPrettyRendering: com.fasterxml.jackson.databind.ObjectMapper objectMapper> = v;
return;
}
}