mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
289 lines
8.5 KiB
JavaScript
289 lines
8.5 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+=".#XO+"[b[n++]];
|
|
}
|
|
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();
|
|
g.setColor(1);
|
|
g.fillPoly([ 16, 0, 31, 31, 26, 31, 16, 12, 6, 28, 0, 27 ]);
|
|
SHOULD_BE(`
|
|
................................
|
|
...............##...............
|
|
...............##...............
|
|
..............####..............
|
|
.............#####..............
|
|
.............######.............
|
|
............#######.............
|
|
............########............
|
|
...........#########............
|
|
..........###########...........
|
|
..........###########...........
|
|
.........#############..........
|
|
.........#############..........
|
|
........#######..######.........
|
|
.......#######...######.........
|
|
.......#######....#####.........
|
|
......#######.....######........
|
|
......#######......#####........
|
|
.....#######.......######.......
|
|
....#######.........#####.......
|
|
....#######.........######......
|
|
...#######...........#####......
|
|
...######............######.....
|
|
..#######.............#####.....
|
|
.#######...............#####....
|
|
.#######...............#####....
|
|
#######.................#####...
|
|
...###..................#####...
|
|
.........................#####..
|
|
.........................#####..
|
|
..........................#####.
|
|
................................`);
|
|
|
|
g.clear();
|
|
g.setColor(1);
|
|
g.fillPoly([16,2, 30,16, 16,30, 2,16]);
|
|
SHOULD_BE(`
|
|
................................
|
|
................................
|
|
...............#................
|
|
..............###...............
|
|
.............#####..............
|
|
............#######.............
|
|
...........#########............
|
|
..........###########...........
|
|
.........#############..........
|
|
........###############.........
|
|
.......#################........
|
|
......###################.......
|
|
.....#####################......
|
|
....#######################.....
|
|
...#########################....
|
|
..###########################...
|
|
..###########################...
|
|
...#########################....
|
|
....#######################.....
|
|
.....#####################......
|
|
......###################.......
|
|
.......#################........
|
|
........###############.........
|
|
.........#############..........
|
|
..........###########...........
|
|
...........#########............
|
|
............#######.............
|
|
.............#####..............
|
|
..............###...............
|
|
...............#................
|
|
................................
|
|
................................`);
|
|
|
|
g.clear();
|
|
g.setColor(1);
|
|
g.fillPoly([16,2, 30,12, 16,30, 2,20]);
|
|
SHOULD_BE(`
|
|
................................
|
|
................................
|
|
................#...............
|
|
...............###..............
|
|
..............#####.............
|
|
.............########...........
|
|
............##########..........
|
|
............############........
|
|
...........##############.......
|
|
..........################......
|
|
.........###################....
|
|
.........####################...
|
|
........######################..
|
|
.......######################...
|
|
......######################....
|
|
.....######################.....
|
|
.....#####################......
|
|
....######################......
|
|
...######################.......
|
|
..######################........
|
|
...####################.........
|
|
....###################.........
|
|
.....#################..........
|
|
.......##############...........
|
|
........############............
|
|
..........#########.............
|
|
...........########.............
|
|
............######..............
|
|
..............###...............
|
|
...............#................
|
|
................................
|
|
................................`);
|
|
|
|
|
|
g.clear();
|
|
g.setColor(1);
|
|
g.fillPoly([4,4, 27,4, 27,27, 4,27]);
|
|
SHOULD_BE(`
|
|
................................
|
|
................................
|
|
................................
|
|
................................
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
....#######################.....
|
|
................................
|
|
................................
|
|
................................
|
|
................................
|
|
................................`);
|
|
|
|
g.clear();
|
|
g.setFont("Vector",32);
|
|
g.setColor(1);
|
|
g.drawString("X");
|
|
SHOULD_BE(`
|
|
...#####................#####...
|
|
....#####..............#####....
|
|
....######............######....
|
|
.....#####............#####.....
|
|
......#####..........#####......
|
|
......######........######......
|
|
.......#####........#####.......
|
|
........#####......#####........
|
|
........######....######........
|
|
.........#####....#####.........
|
|
..........#####..#####..........
|
|
..........############..........
|
|
...........##########...........
|
|
............########............
|
|
............########............
|
|
.............######.............
|
|
.............######.............
|
|
............########............
|
|
............########............
|
|
...........##########...........
|
|
..........############..........
|
|
..........#####..#####..........
|
|
.........#####....#####.........
|
|
........######....######........
|
|
........#####......#####........
|
|
.......#####........#####.......
|
|
......######........######......
|
|
......#####..........#####......
|
|
.....#####............#####.....
|
|
....######............######....
|
|
....#####..............#####....
|
|
...#####................#####...`);
|
|
|
|
g.clear();
|
|
g.setColor(1);
|
|
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(`
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
............######..............
|
|
...........########.............
|
|
..........##########............
|
|
.........############...........
|
|
.......################.........
|
|
......##################........
|
|
.....####################.......
|
|
...########################.....
|
|
..##########################....
|
|
.############################...
|
|
###########.######.###########..
|
|
.#########..######..#########...
|
|
.#######....######....#######...
|
|
..#####.....######.....#####....
|
|
..###.......######.......###....
|
|
...#........######........#.....
|
|
............######..............
|
|
............######..............`);
|
|
|
|
g.clear();
|
|
g.setColor(1).fillPoly([1.5,1.5, 15.5,2.5, 16.5,16.5, 2.5,15.5]);
|
|
g.setColor(2).fillPoly([15.5,2.5, 29.5,3.5, 30.5,17.5, 16.5,16.5]);
|
|
g.setColor(3).fillPoly([2.5,15.5, 16.5,16.5, 17.5,30.5, 3.5,29.5]);
|
|
g.setColor(4).fillPoly([16.5,16.5, 30.5,17.5, 31.5,31.5, 17.5,30.5]);
|
|
SHOULD_BE(`
|
|
................................
|
|
................................
|
|
..#############.................
|
|
..##############XXXXXXXXXXXXX...
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
..##############XXXXXXXXXXXXXX..
|
|
...OOOOOOOOOOOOOXXXXXXXXXXXXXX..
|
|
...OOOOOOOOOOOOOO+++++++++++++..
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
...OOOOOOOOOOOOOO++++++++++++++.
|
|
.................++++++++++++++.
|
|
................................`);
|
|
|
|
result = ok;
|