'use strict'; const assert = require('assert'); const fs = require('fs'); const path = require('path'); const vtracer = require('./index.js'); const SAMPLE = path.join(__dirname, '..', 'docs', 'assets', 'samples', 'tank-unit-preview.png'); const data = fs.readFileSync(SAMPLE); // encoded bytes, default options let svg = vtracer.convertBuffer(data); assert(svg.includes(' all black svg = vtracer.convertBuffer(data, { clustering: 'bw' }); assert(svg.includes('fill="#000000"'), 'bw produces black'); console.log('convertBuffer bw:', (svg.match(/', simplified.length, 'bytes'); } // options: mosaic + polygon + palette svg = vtracer.convertBuffer(data, { hierarchical: 'cutout', mode: 'polygon', palette: ['#000000', '#ffffff'], optimize: 2 }); assert(svg.includes(' 0, 'convertFileSync wrote file'); console.log('convertFileSync wrote:', fs.statSync(out).size, 'bytes'); // error handling assert.throws(() => vtracer.convertBuffer(data, { palette: ['nope'] }), /rrggbb/, 'bad palette rejected'); assert.throws(() => vtracer.convertPixels(Buffer.alloc(8), 10, 10), /rgba length/, 'bad pixel length rejected'); console.log('errors rejected OK'); console.log('ALL OK');