mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
247 lines
4.1 KiB
JavaScript
247 lines
4.1 KiB
JavaScript
var font = atob("/4H/AAD/AACPmfEAgZH/APAQ/wDxmY8A/5GfAICA/wD/kf8A8ZH/AA==");
|
|
Graphics.prototype.setFontTest = function() {
|
|
this.setFontCustom(font, "0".charCodeAt(0), 4, 8);
|
|
}
|
|
|
|
|
|
var g = Graphics.createArrayBuffer(16,16,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++]?"#":".";
|
|
}
|
|
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.setFontVector(15);
|
|
g.drawString("4");
|
|
SHOULD_BE(`
|
|
................
|
|
....###.........
|
|
....###.........
|
|
...####.........
|
|
..##.##.........
|
|
.##..##.........
|
|
.##..##.........
|
|
#######.........
|
|
#######.........
|
|
.....##.........
|
|
.....##.........
|
|
.....##.........
|
|
................
|
|
................
|
|
................
|
|
................`);
|
|
|
|
g.clear();
|
|
g.setFont("Vector:10x20");
|
|
g.drawString("4");
|
|
SHOULD_BE(`
|
|
................
|
|
...#............
|
|
...#............
|
|
..##............
|
|
..##............
|
|
..##............
|
|
.###............
|
|
.#.#............
|
|
.#.#............
|
|
#..#............
|
|
#####...........
|
|
#####...........
|
|
...#............
|
|
...#............
|
|
...#............
|
|
...#............`);
|
|
|
|
|
|
g.clear();
|
|
g.setFont("4x6");
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
.##.##..........
|
|
#.#...#.........
|
|
#.#..#..........
|
|
###.#...........
|
|
..#.###.........
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................`);
|
|
|
|
g.clear();
|
|
g.setFont("4x6",2);
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
..####..####....
|
|
..####..####....
|
|
##..##......##..
|
|
##..##......##..
|
|
##..##....##....
|
|
##..##....##....
|
|
######..##......
|
|
######..##......
|
|
....##..######..
|
|
....##..######..
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................`);
|
|
|
|
g.clear();
|
|
g.setFont("4x6:1x3"); // triple height, single width
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
.##.##..........
|
|
.##.##..........
|
|
.##.##..........
|
|
#.#...#.........
|
|
#.#...#.........
|
|
#.#...#.........
|
|
#.#..#..........
|
|
#.#..#..........
|
|
#.#..#..........
|
|
###.#...........
|
|
###.#...........
|
|
###.#...........
|
|
..#.###.........
|
|
..#.###.........
|
|
..#.###.........
|
|
................`);
|
|
|
|
g.clear();
|
|
g.setFont("6x8");
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
................
|
|
...#...###......
|
|
..##..#...#.....
|
|
.#.#......#.....
|
|
#..#...###......
|
|
#####.#.........
|
|
...#..#####.....
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................`);
|
|
|
|
g.clear();
|
|
g.setFont("6x8:1x2"); // double height, singlw width
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
................
|
|
................
|
|
...#...###......
|
|
...#...###......
|
|
..##..#...#.....
|
|
..##..#...#.....
|
|
.#.#......#.....
|
|
.#.#......#.....
|
|
#..#...###......
|
|
#..#...###......
|
|
#####.#.........
|
|
#####.#.........
|
|
...#..#####.....
|
|
...#..#####.....
|
|
................
|
|
................`);
|
|
|
|
g.clear();
|
|
g.setFontCustom(font, "0".charCodeAt(0), 4, 8);
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
#.#.###.........
|
|
#.#...#.........
|
|
#.#...#.........
|
|
###..##.........
|
|
..#.##..........
|
|
..#.#...........
|
|
..#.#...........
|
|
..#.###.........
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................
|
|
................`);
|
|
|
|
g.clear();
|
|
g.setFontCustom(font, "0".charCodeAt(0), 4, 8 + (2<<8));
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
##..##..######..
|
|
##..##..######..
|
|
##..##......##..
|
|
##..##......##..
|
|
##..##......##..
|
|
##..##......##..
|
|
######....####..
|
|
######....####..
|
|
....##..####....
|
|
....##..####....
|
|
....##..##......
|
|
....##..##......
|
|
....##..##......
|
|
....##..##......
|
|
....##..######..
|
|
....##..######..`);
|
|
|
|
g.clear();
|
|
g.setFont("Test",2);
|
|
g.drawString("42");
|
|
SHOULD_BE(`
|
|
##..##..######..
|
|
##..##..######..
|
|
##..##......##..
|
|
##..##......##..
|
|
##..##......##..
|
|
##..##......##..
|
|
######....####..
|
|
######....####..
|
|
....##..####....
|
|
....##..####....
|
|
....##..##......
|
|
....##..##......
|
|
....##..##......
|
|
....##..##......
|
|
....##..######..
|
|
....##..######..`);
|
|
//g.print();
|
|
|
|
result=ok ? 1 : 0;
|