encode($reversedData, $ecCodewords); echo "EC codewords (from reversed data): " . implode(', ', $ec) . "\n\n"; // Reverse EC codewords too $reversedEC = array_reverse($ec); echo "Reversed EC codewords: " . implode(', ', $reversedEC) . "\n\n"; // Test with original order $originalEC = $rs->encode($data, $ecCodewords); echo "Original EC codewords: " . implode(', ', $originalEC) . "\n\n"; // Verify both require_once __DIR__ . '/test-reed-solomon-decoder.php'; $decoder = new SimpleRSDecoder(); // Test 1: Original order $full1 = array_merge($data, $originalEC); $syndromes1 = $decoder->calculateSyndromes($full1, $ecCodewords); echo "Original order syndromes: " . implode(', ', $syndromes1) . "\n"; $allZero1 = true; foreach ($syndromes1 as $s) { if ($s !== 0) { $allZero1 = false; break; } } echo ($allZero1 ? "✅" : "❌") . "\n\n"; // Test 2: Reversed order $full2 = array_merge($reversedData, $reversedEC); $syndromes2 = $decoder->calculateSyndromes($full2, $ecCodewords); echo "Reversed order syndromes: " . implode(', ', $syndromes2) . "\n"; $allZero2 = true; foreach ($syndromes2 as $s) { if ($s !== 0) { $allZero2 = false; break; } } echo ($allZero2 ? "✅" : "❌") . "\n\n"; // Test 3: Data reversed, EC original $full3 = array_merge($reversedData, $originalEC); $syndromes3 = $decoder->calculateSyndromes($full3, $ecCodewords); echo "Reversed data + original EC syndromes: " . implode(', ', $syndromes3) . "\n"; $allZero3 = true; foreach ($syndromes3 as $s) { if ($s !== 0) { $allZero3 = false; break; } } echo ($allZero3 ? "✅" : "❌") . "\n\n";