// Test the corrected implementation with real file const SatLocLogParser = require('./helpers/satloc_log_parser.js').SatLocLogParser; async function testParser() { const parser = new SatLocLogParser(); console.log('=== Testing Corrected Implementation ==='); try { const result = await parser.parseFile('./test-logs/Liquid_IF2_G4.log', {}); console.log('Parse completed successfully!'); console.log('Application details count:', result.applicationDetails.length); if (result.applicationDetails.length > 0) { const firstDetail = result.applicationDetails[0]; console.log('\n=== First Application Detail ==='); console.log('gpsTime:', firstDetail.gpsTime); if (firstDetail.gpsTime && !isNaN(firstDetail.gpsTime)) { console.log('gpsTime as date:', new Date(firstDetail.gpsTime * 1000).toISOString()); } console.log('lat:', firstDetail.lat); console.log('lon:', firstDetail.lon); // Test a few more records to verify consistency const sampleIndexes = [0, 100, 1000, 5000, 10000]; console.log('\n=== Sample gpsTime Values ==='); sampleIndexes.forEach(idx => { if (idx < result.applicationDetails.length) { const detail = result.applicationDetails[idx]; if (detail.gpsTime && !isNaN(detail.gpsTime)) { console.log(`[${idx}] gpsTime: ${detail.gpsTime} => ${new Date(detail.gpsTime * 1000).toISOString()}`); } else { console.log(`[${idx}] gpsTime: ${detail.gpsTime} (invalid)`); } } }); } console.log('\nāœ… Parsing completed successfully!'); } catch (err) { console.error('āŒ Error:', err.message); console.error(err.stack); } } testParser();