Set-Location $PSScriptRoot/website-yabg
$ProgressPreference = "SilentlyContinue"
$ErrorActionPreference = "Stop"
$yabg = $Env:YABG_EXE
if ($null -eq $yabg) {
  Write-Error '$Env:YABG_EXE is not set'
  Exit 1
}
function test($c, $o) {
  $sum = 0
  for ($i = 0; $i -lt 11; $i++) {
    if ($c) { Remove-Item -Recurse -Force '.yabg-cache.sqlite3' -ErrorAction SilentlyContinue }
    if ($o) { Remove-Item -Recurse -Force output -ErrorAction SilentlyContinue }
    if ($i -eq 0) {
      Write-Host "Warmup run:"
      & $yabg
      Write-Host "Warmup run complete"
      continue
    }
    $result = (Measure-Command { & $yabg }).TotalMilliseconds
    Write-Host $result
    $sum += $result
  }
  $avg = $sum / 10.0
  Write-Host "Average: $avg"
}
Write-Host "==="
Write-Host "Test: clean"
test $true $true
Write-Host "==="
Write-Host "Test: no output"
test $false $true
Write-Host "==="
Write-Host "Test: nothing to do"
test $false $false