lean4-htt/tests/elab_bench/charactersIn.lean
Garmelon 492fda3bca
chore: speed up test suite slightly (#12969)
This PR speeds up some benchmarks when run as tests by lowering their
workload. It also stops testing some of the more expensive benchmarks
that can't be easily made smaller.
2026-03-20 12:24:32 +00:00

25 lines
702 B
Text

module
import Lean
meta import Lean.Data.FuzzyMatching
open Lean Elab
def TURNS : Nat := 20
def bench (pattern : String) : TermElabM Unit := do
let env ← getEnv
-- IO.println s!"{env.constants.size} decls"
let list := env.constants.toList |>.map fun (n, _) => n.toString
let bench := (← IO.getEnv "TEST_BENCH") == some "1"
let turns := if bench then TURNS else 1
IO.println s!"Matching {list.length * turns} decls"
for _ in 0...turns do
let mut n := 0
for name in list do
if pattern.charactersIn name then n := n + 1
IO.println s!"{n} matches"
set_option profiler true
#eval! bench "L"
#eval! bench "Lean."
#eval! bench "Lean.Expr"
#eval! bench "Lean.Expr.const"