getMethod('encodeData'); $method->setAccessible(true); $tempGenerator = new QrCodeGenerator(new \App\Framework\QrCode\QrCodeRenderer()); $dataCodewords = $method->invoke($tempGenerator, $testData, $config); echo "Data codewords: " . count($dataCodewords) . "\n"; echo "First 5 data codewords: " . implode(', ', array_slice($dataCodewords, 0, 5)) . "\n\n"; // Generate EC codewords $reedSolomon = new ReedSolomonEncoder(); $ecInfo = ReedSolomonEncoder::getECInfo(1, 'M'); echo "EC info:\n"; echo " Data codewords: {$ecInfo['dataCodewords']}\n"; echo " EC codewords: {$ecInfo['ecCodewords']}\n\n"; $ecCodewords = $reedSolomon->encode($dataCodewords, $ecInfo['ecCodewords']); echo "EC codewords: " . count($ecCodewords) . "\n"; echo "First 5 EC codewords: " . implode(', ', array_slice($ecCodewords, 0, 5)) . "\n\n"; // Expected for Version 1, Level M: // Data: 16 codewords // EC: 10 codewords // Total: 26 codewords $allCodewords = array_merge($dataCodewords, $ecCodewords); echo "Total codewords: " . count($allCodewords) . " (expected: 26)\n"; if (count($allCodewords) === 26) { echo "✅ Codeword count is correct\n"; } else { echo "❌ Codeword count is wrong!\n"; } // Verify known values for "HELLO WORLD" (if available) echo "\n=== Codeword Verification ===\n"; echo "Note: This is a basic check. Full verification requires reference implementation.\n";