Instances For
- passUnderTest : Lean.Compiler.LCNF.Pass
- testName : Lean.Name
Instances For
- decls : Array Lean.Compiler.LCNF.Decl
Instances For
- input : Array Lean.Compiler.LCNF.Decl
- output : Array Lean.Compiler.LCNF.Decl
Instances For
Equations
- Lean.Compiler.LCNF.Testing.TestInstaller.install x passUnderTestName testName = x { passUnderTestName := passUnderTestName, testName := testName }
Equations
- Lean.Compiler.LCNF.Testing.TestM.run x passUnderTest testName = x { passUnderTest := passUnderTest, testName := testName }
Equations
- Lean.Compiler.LCNF.Testing.SimpleAssertionM.run x decls passUnderTest testName = x { decls := decls } { passUnderTest := passUnderTest, testName := testName }
Equations
- Lean.Compiler.LCNF.Testing.InOutAssertionM.run x input output passUnderTest testName = x { input := input, output := output } { passUnderTest := passUnderTest, testName := testName }
Equations
- Lean.Compiler.LCNF.Testing.getTestName = do let a ← read pure a.testName
Equations
- Lean.Compiler.LCNF.Testing.getPassUnderTest = do let a ← read pure a.passUnderTest
Equations
- Lean.Compiler.LCNF.Testing.getDecls = do let a ← read pure a.decls
Equations
- Lean.Compiler.LCNF.Testing.getInputDecls = do let a ← read pure a.input
Equations
- Lean.Compiler.LCNF.Testing.getOutputDecls = do let a ← read pure a.output
If property is false throw an exception with msg.
Equations
- Lean.Compiler.LCNF.Testing.assert property msg = if property = true then pure PUnit.unit else Lean.throwError (Function.comp Lean.MessageData.ofFormat Lean.format msg)
Install an assertion pass right after a specific occurrence of a pass, default is first.
Equations
- One or more equations did not get rendered due to their size.
Install an assertion pass right after each occurrence of a pass.
Equations
- One or more equations did not get rendered due to their size.
Install an assertion pass right after a specific occurrence of a pass, default is first. The assertion operates on a per declaration basis.
Equations
- One or more equations did not get rendered due to their size.
Install an assertion pass right after the each occurrence of a pass. The assertion operates on a per declaration basis.
Equations
- One or more equations did not get rendered due to their size.
Replace a specific occurrence, default is first, of a pass with a wrapper one that allows the user to provide an assertion which takes into account both the declarations that were sent to and produced by the pass under test.
Equations
- One or more equations did not get rendered due to their size.
Replace all occurrences of a pass with a wrapper one that allows the user to provide an assertion which takes into account both the declarations that were sent to and produced by the pass under test.
Equations
- One or more equations did not get rendered due to their size.
Insert a pass after passUnderTestName, that ensures, that if
passUnderTestName is executed twice in a row, no change in the resulting
expression will occur, i.e. the pass is at a fix point.
Equations
- One or more equations did not get rendered due to their size.
Compare the overall sizes of the input and output of passUnderTest with assertion.
If assertion inputSize outputSize is false throw an exception with msg.
Equations
- One or more equations did not get rendered due to their size.
Assert that the overall size of the Decls in the compilation pipeline does not change
after passUnderTestName.
Equations
- Lean.Compiler.LCNF.Testing.assertPreservesSize msg = Lean.Compiler.LCNF.Testing.assertSize (fun a a_1 => a == a_1) msg
Assert that the overall size of the Decls in the compilation pipeline gets reduced by passUnderTestName.
Equations
- Lean.Compiler.LCNF.Testing.assertReducesSize msg = Lean.Compiler.LCNF.Testing.assertSize (fun a a_1 => decide (a > a_1)) msg
Assert that the overall size of the Decls in the compilation pipeline gets reduced or stays unchanged
by passUnderTestName.
Equations
- Lean.Compiler.LCNF.Testing.assertReducesOrPreservesSize msg = Lean.Compiler.LCNF.Testing.assertSize (fun a a_1 => decide (a ≥ a_1)) msg
Assert that the pass under test produces Decls that do not contain
Expr.const constName in their Code.let values anymore.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.