blob: 5c00def68a8fa668811b709549530ec1b431c1dd [file] [log] [blame]
let container = document.getElementById("container");
let breakTestFontsize = parseFloat(getComputedStyle(container).fontSize);
let nbsp = String.fromCharCode(0xA0);
nbsp = nbsp + nbsp;
class LineBreakTestElement {
constructor(last, current) {
let element = document.createElement('div');
element.textContent = nbsp + String.fromCharCode(last) + String.fromCharCode(current);
container.appendChild(element);
this.element = element;
}
get canBreak() {
return this.element.offsetHeight / breakTestFontsize > 1.9;
}
}
class LineBreakTest {
constructor(begin, end) {
let rows = [];
for (let last = begin; last < end; last++) {
let row = [];
for (let current = begin; current < end; current++)
row.push(new LineBreakTestElement(last, current));
rows.push(row);
}
this.begin = begin;
this.rows = rows;
}
toResultString() {
let header = [];
for (let i = 0; i < this.rows.length; i++)
header.push(String.fromCharCode(this.begin + i));
let rows = [" " + header.join("")];
for (let i = 0; i < this.rows.length; i++) {
let row = String.fromCharCode(this.begin + i) + " " +
this.rows[i].map((test) => test.canBreak ? "/" : "X")
.join("");
rows.push(row);
}
return rows.join("\n");
}
}