getSize();
echo "Matrix: {$size}x{$size}\n\n";
// Generate SVG manually to ensure correct structure
$moduleSize = 20;
$quietZone = 80;
$canvasSize = $size * $moduleSize + 2 * $quietZone;
$svg = "\n";
$svg .= "\n";
// Save
$filepath = __DIR__ . '/test-qrcodes/simple-manual.svg';
file_put_contents($filepath, $svg);
echo "✅ Generated simple manual SVG: {$filepath}\n";
echo " Canvas: {$canvasSize}x{$canvasSize}\n";
echo " Module size: {$moduleSize}px\n";
echo " Quiet zone: {$quietZone}px\n\n";
// Compare with renderer output
$style = QrCodeStyle::large();
$renderer = new QrCodeRenderer();
$rendererSvg = $renderer->renderCustom($matrix, $style, false);
$rendererPath = __DIR__ . '/test-qrcodes/renderer-output.svg';
file_put_contents($rendererPath, $rendererSvg);
echo "✅ Generated renderer SVG: {$rendererPath}\n\n";
// Compare structure
echo "=== Structure Comparison ===\n";
// Count rectangles
$manualRects = substr_count($svg, '