Espruino/tests/test_graphics_fillPoly.js

243 lines
7.1 KiB
JavaScript

var g = Graphics.createArrayBuffer(32,32,8);
g.dump = _=>{
var s = "";
var b = new Uint8Array(g.buffer);
var n = 0;
for (var y=0;y<g.getHeight();y++) {
s+="\n";
for (var x=0;x<g.getWidth();x++)
s+=".#"[b[n++]?1:0];
}
return s;
}
g.print = _=>{
print("`"+g.dump()+"`");
}
var ok = true;
function SHOULD_BE(a) {
var b = g.dump();
if (a!=b) {
console.log("GOT :"+b+"\nSHOULD BE:"+a+"\n================");
ok = false;
}
}
g.clear().fillPoly([ 16, 0, 31, 31, 26, 31, 16, 12, 6, 28, 0, 27 ]);
SHOULD_BE(`
...............#................
...............#................
..............###...............
.............####...............
.............#####..............
............######..............
............#######.............
...........########.............
...........#########............
..........##########............
.........############...........
.........############...........
........#######.######..........
........#######.######..........
.......#######...######.........
......#######....######.........
......#######.....######........
.....#######......######........
.....######........######.......
....#######........######.......
...#######..........#####.......
...#######...........#####......
..#######............#####......
..######..............#####.....
.#######..............#####.....
#######................#####....
######.................#####....
...###..................#####...
........................#####...
.........................#####..
.........................#####..
................................`);
g.clear();
g.fillPoly([16,2, 30,16, 16,30, 2,16]);
SHOULD_BE(`
................................
................................
...............#................
..............###...............
.............#####..............
............#######.............
...........#########............
..........###########...........
.........#############..........
........###############.........
.......#################........
......###################.......
.....#####################......
....#######################.....
...#########################....
..###########################...
..###########################...
...#########################....
....#######################.....
.....#####################......
......###################.......
.......#################........
........###############.........
.........#############..........
..........###########...........
...........#########............
............#######.............
.............#####..............
..............###...............
...............#................
................................
................................`);
g.clear();
g.fillPoly([16,2, 30,12, 16,30, 2,20]);
SHOULD_BE(`
................................
................................
...............#................
..............####..............
..............#####.............
.............#######............
............##########..........
...........############.........
...........##############.......
..........################......
.........##################.....
........#####################...
.......######################...
.......#####################....
......######################....
.....######################.....
....######################......
....#####################.......
...#####################........
..######################........
..#####################.........
....##################..........
.....################...........
......###############...........
........############............
.........##########.............
...........#######..............
............#####...............
.............####...............
...............#................
................................
................................`);
g.clear();
g.fillPoly([4,4, 27,4, 27,27, 4,27]);
SHOULD_BE(`
................................
................................
................................
................................
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
....#######################.....
................................
................................
................................
................................
................................`);
g.clear();
g.setFont("Vector",32);
g.drawString("X");
SHOULD_BE(`
...#####...............#####....
...#####...............#####....
....#####.............#####.....
.....#####...........#####......
.....#####...........#####......
......#####.........#####.......
.......#####.......#####........
.......#####.......#####........
........#####.....#####.........
.........#####...#####..........
.........#####...#####..........
..........#####.#####...........
...........#########............
...........#########............
............#######.............
.............#####..............
.............#####..............
............#######.............
...........#########............
...........#########............
..........#####.#####...........
.........#####...#####..........
.........#####...#####..........
........#####.....#####.........
.......#####.......#####........
.......#####.......#####........
......#####.........#####.......
.....#####...........#####......
.....#####...........#####......
....#####.............#####.....
...#####...............#####....
...#####...............#####....`);
g.clear();
g.fillPoly([ 12, 0, 18, 0, 18, 15, 30, 24, 27, 30, 18, 24, 18, 36, 12, 36, 12, 24, 3, 30, 0, 24, 12, 15, 12, 0 ]);
SHOULD_BE(`
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
............######..............
...........#######..............
..........##########............
........#############...........
.......###############..........
......##################........
....#####################.......
...#######################......
..##########################....
#############################...
###########.#################...
#########...######..#########...
.#######....######...#######....
.#####......######.....#####....
..###.......######......###.....
..#.........######........#.....
............######..............
............######..............`);
result = ok;