Files
Mimante/Mimante/build/sostituiti/backtest.ps1
T
Alby96andClaude Opus 5 99b3030180 Porta la catena di rilascio nel repository ufficiale
Il progetto viveva in una cartella senza alcun commit: tutto il lavoro stava
solo sul disco. Trasferito qui, dove esiste una storia e un remoto.

Mancava soltanto build/: i sorgenti erano gia' allineati e identici. Nessun
percorso e' stato toccato — Release.proj usa MSBuildThisFileDirectory e
tasks.json usa ${workspaceFolder}, quindi il trasloco non li riguarda.

- build/Release.proj: verifica, backtest, pacchetto e rilascio in un solo file
  MSBuild, senza script. Provato dalla nuova posizione: 287 test verdi,
  installatore prodotto, backtest eseguito.
- build/gitea.example.json: url, owner e repo veri; resta da mettere il token
  in build/gitea.json, che e' ignorato da git.
- build/sostituiti/: i quattro .ps1 rimpiazzati da Release.proj. Entrano qui
  solo per non perderli con la vecchia cartella: da ora sono recuperabili
  dalla storia e si possono cancellare.
- .gitignore: gitea.json (contiene una credenziale), i riepiloghi del backtest
  e i pacchetti in bin/installer.

Versione 4.12.0 -> 4.13.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 22:15:53 +02:00

84 lines
2.8 KiB
PowerShell

# Rigioca i dossier delle aste concluse e stampa quanto costerebbe ciascun anticipo.
#
# powershell -ExecutionPolicy Bypass -File .\backtest.ps1
# powershell -ExecutionPolicy Bypass -File .\backtest.ps1 -Max 200
#
# Il motore punta solo nei cicli che arrivano fino all'anticipo senza che nessun altro
# abbia puntato: la rigiocata conta quei cicli, quindi dice quante puntate si
# spenderebbero e quante ne bloccherebbero le strategie.
#
# NON dice se avresti vinto: una nostra puntata rimette in gioco l'asta, e la reazione
# degli avversari non e' registrata da nessuna parte.
[CmdletBinding()]
param(
# Cartella dei dossier. Vuota = quella in uso dall'applicazione.
[string] $Cartella = "",
# Quanti dossier al massimo (0 = tutti). I file sono grossi: per un giro veloce, 200.
[int] $Max = 0,
# Dove scrivere il riepilogo.
[string] $Report = ""
)
$ErrorActionPreference = 'Stop'
Set-Location $PSScriptRoot
if (-not $Cartella) {
# Stessa struttura di Utilities/AppPaths: Dati\Registri\Aste sotto %LocalAppData%.
$Cartella = Join-Path $env:LOCALAPPDATA "AutoBidder\Dati\Registri\Aste"
}
if (-not (Test-Path $Cartella)) {
Write-Host "Cartella dei dossier non trovata: $Cartella" -ForegroundColor Red
Write-Host "Indicala con -Cartella, oppure accendi 'Dossier per ogni asta' nelle Impostazioni." -ForegroundColor Yellow
exit 1
}
$conteggio = (Get-ChildItem -Path $Cartella -Filter *.jsonl -File | Measure-Object).Count
if ($conteggio -eq 0) {
Write-Host "Nessun dossier (*.jsonl) in $Cartella" -ForegroundColor Red
exit 1
}
if (-not $Report) {
$Report = Join-Path $PSScriptRoot "backtest-report.txt"
}
Write-Host "== Rigiocata sui dossier ==" -ForegroundColor Cyan
Write-Host " cartella : $Cartella"
Write-Host " dossier : $conteggio$(if ($Max -gt 0) { " (ne verranno letti $Max)" })"
Write-Host " riepilogo: $Report"
Write-Host ""
$env:AUTOBIDDER_BACKTEST_DIR = $Cartella
$env:AUTOBIDDER_BACKTEST_MAX = "$Max"
$env:AUTOBIDDER_BACKTEST_OUT = $Report
# L'applicazione potrebbe essere aperta e tenere bloccato AutoBidder.exe: si compila
# in una cartella a parte, come fa la verifica.
$out = Join-Path ([System.IO.Path]::GetTempPath()) "AutoBidder.Backtest"
& dotnet test Tests\AutoBidder.Tests.csproj --nologo -v q -o $out `
--filter "FullyQualifiedName~RealDossierBacktest" `
--logger "console;verbosity=detailed" 2>&1 |
Where-Object { $_ -notmatch '^\s*$' } |
ForEach-Object { Write-Host $_ }
$esito = $LASTEXITCODE
Write-Host ""
if (Test-Path $Report) {
Write-Host "== Riepilogo ==" -ForegroundColor Cyan
Get-Content $Report | ForEach-Object { Write-Host $_ }
}
if ($esito -ne 0) {
Write-Host "`nLa rigiocata ha trovato dei problemi (vedi sopra)." -ForegroundColor Red
exit 1
}
Write-Host "`nRigiocata completata." -ForegroundColor Green
exit 0