159 lines
5.9 KiB
PowerShell
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
|
|
|