|
|
@@ -59,3 +59,45 @@ test("fills adjacent block elements without glyph gaps", async () => {
|
|
|
Array.from({ length: image.width }, () => [0, 0, 0, 255]).flat(),
|
|
|
)
|
|
|
})
|
|
|
+
|
|
|
+test("draws heavy vertical box elements on cell boundaries", async () => {
|
|
|
+ const image = SimulationPng.screenshotFrame({
|
|
|
+ cols: 1,
|
|
|
+ rows: 2,
|
|
|
+ cursor: [0, 0],
|
|
|
+ lines: [
|
|
|
+ {
|
|
|
+ spans: [
|
|
|
+ {
|
|
|
+ text: "┃",
|
|
|
+ width: 1,
|
|
|
+ fg: RGBA.fromInts(255, 255, 255),
|
|
|
+ bg: RGBA.fromInts(0, 0, 0),
|
|
|
+ attributes: 0,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ spans: [
|
|
|
+ {
|
|
|
+ text: "╹",
|
|
|
+ width: 1,
|
|
|
+ fg: RGBA.fromInts(255, 255, 255),
|
|
|
+ bg: RGBA.fromInts(0, 0, 0),
|
|
|
+ attributes: 0,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ })
|
|
|
+ const canvas = createCanvas(image.width, image.height)
|
|
|
+ const context = canvas.getContext("2d")
|
|
|
+ context.drawImage(await loadImage(image.data), 0, 0)
|
|
|
+
|
|
|
+ expect([...context.getImageData(4, 0, 2, 30).data]).toEqual(
|
|
|
+ Array.from({ length: 60 }, () => [255, 255, 255, 255]).flat(),
|
|
|
+ )
|
|
|
+ expect([...context.getImageData(4, 30, 2, 10).data]).toEqual(
|
|
|
+ Array.from({ length: 20 }, () => [0, 0, 0, 255]).flat(),
|
|
|
+ )
|
|
|
+})
|