institutional-trader/verify_implementation.ps1

159 lines
5.9 KiB
PowerShell

# Verification Script for Historical Data & Backtesting Implementation
# Set console output encoding to UTF-8 for proper emoji display
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "Implementation Verification" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
# Check for created files
Write-Host "Checking created files..." -ForegroundColor Yellow
$files = @(
"backend\scripts\validateSchema.js",
"backend\src\services\performanceMetrics.js",
"backend\scripts\testBacktester.js",
"BACKTESTING_IMPLEMENTATION_SUMMARY.md",
"TESTING_GUIDE.md",
"IMPLEMENTATION_COMPLETE.md"
)
$allExist = $true
foreach ($file in $files) {
if (Test-Path $file) {
Write-Host " [OK] $file" -ForegroundColor Green
} else {
Write-Host " [MISSING] $file" -ForegroundColor Red
$allExist = $false
}
}
Write-Host ""
Write-Host "Checking modified files..." -ForegroundColor Yellow
$modifiedFiles = @(
"yahhooscript.py",
"backend\src\services\backtester.js",
"backend\src\routes\backtest.js",
"backend\package.json"
)
foreach ($file in $modifiedFiles) {
if (Test-Path $file) {
Write-Host " [OK] $file" -ForegroundColor Green
} else {
Write-Host " [MISSING] $file" -ForegroundColor Red
$allExist = $false
}
}
Write-Host ""
Write-Host "Checking yahhooscript.py configuration..." -ForegroundColor Yellow
if (Test-Path "yahhooscript.py") {
$content = Get-Content "yahhooscript.py" -Raw
if ($content -match "LOOKBACK_DAYS_INTRADAY = 30") {
Write-Host " [OK] LOOKBACK_DAYS_INTRADAY set to 30" -ForegroundColor Green
} else {
Write-Host " [WARNING] LOOKBACK_DAYS_INTRADAY may not be set to 30" -ForegroundColor Yellow
}
if ($content -match "interval = `"5m`"") {
Write-Host " [OK] 5-minute interval logic found" -ForegroundColor Green
} else {
Write-Host " [WARNING] 5-minute interval logic may be missing" -ForegroundColor Yellow
}
} else {
Write-Host " [ERROR] yahhooscript.py not found" -ForegroundColor Red
$allExist = $false
}
Write-Host ""
Write-Host "Checking backend package.json..." -ForegroundColor Yellow
if (Test-Path "backend\package.json") {
$pkg = Get-Content "backend\package.json" -Raw | ConvertFrom-Json
if ($pkg.scripts.'validate-schema') {
Write-Host " [OK] validate-schema script found" -ForegroundColor Green
} else {
Write-Host " [WARNING] validate-schema script may be missing" -ForegroundColor Yellow
}
if ($pkg.scripts.'test-backtester') {
Write-Host " [OK] test-backtester script found" -ForegroundColor Green
} else {
Write-Host " [WARNING] test-backtester script may be missing" -ForegroundColor Yellow
}
}
Write-Host ""
Write-Host "Checking runtime environments..." -ForegroundColor Yellow
$runtimeOk = $true
# Check Node.js
try {
$nodeVersion = & node --version 2>&1
if ($LASTEXITCODE -eq 0 -and $nodeVersion -and -not ($nodeVersion -match "not recognized|not found")) {
Write-Host " [OK] Node.js found: $nodeVersion" -ForegroundColor Green
} else {
throw "Node.js not found"
}
} catch {
Write-Host " [MISSING] Node.js not found in PATH" -ForegroundColor Red
$runtimeOk = $false
}
# Check npm
try {
$npmVersion = & npm --version 2>&1
if ($LASTEXITCODE -eq 0 -and $npmVersion -and -not ($npmVersion -match "not recognized|not found")) {
Write-Host " [OK] npm found: v$npmVersion" -ForegroundColor Green
} else {
throw "npm not found"
}
} catch {
Write-Host " [MISSING] npm not found in PATH" -ForegroundColor Red
$runtimeOk = $false
}
# Check Python
try {
$pythonVersion = & python --version 2>&1
if ($LASTEXITCODE -eq 0 -and $pythonVersion -match "Python (\d+\.\d+)") {
$pyVer = $matches[1]
Write-Host " [OK] Python found: $pythonVersion" -ForegroundColor Green
} else {
throw "Python not found"
}
} catch {
Write-Host " [MISSING] Python not found in PATH" -ForegroundColor Red
Write-Host " (Install from python.org or Microsoft Store)" -ForegroundColor Yellow
$runtimeOk = $false
}
Write-Host ""
Write-Host "========================================" -ForegroundColor Cyan
if ($allExist) {
Write-Host "[SUCCESS] All implementation files verified!" -ForegroundColor Green
if ($runtimeOk) {
Write-Host "[SUCCESS] Runtime environments verified!" -ForegroundColor Green
Write-Host ""
Write-Host "Ready to proceed with testing:" -ForegroundColor Yellow
Write-Host " 1. Run: cd backend; npm run validate-schema" -ForegroundColor White
Write-Host " 2. Run: python yahhooscript.py --only AAPL (to test data pull)" -ForegroundColor White
Write-Host " 3. Run: cd backend; npm run test-backtester" -ForegroundColor White
} else {
Write-Host "[WARNING] Runtime environments not fully available" -ForegroundColor Yellow
Write-Host ""
Write-Host "Next steps:" -ForegroundColor Yellow
Write-Host " 1. Install missing runtime environments:" -ForegroundColor White
Write-Host " - Node.js: https://nodejs.org/" -ForegroundColor White
Write-Host " - Python: https://www.python.org/ or Microsoft Store" -ForegroundColor White
Write-Host " 2. Ensure they are added to PATH" -ForegroundColor White
Write-Host " 3. Restart terminal/IDE after installation" -ForegroundColor White
}
Write-Host ""
Write-Host "See TESTING_GUIDE.md for detailed instructions." -ForegroundColor Cyan
} else {
Write-Host "[WARNING] Some files are missing. Please check the implementation." -ForegroundColor Yellow
}
Write-Host "========================================" -ForegroundColor Cyan