agmission/Development/server/tests/test_corrected_parsing.js

49 lines
1.9 KiB
JavaScript

// 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();