import { assertEquals } from "https://deno.land/std@0.176.0/testing/asserts.ts"; import { byteToStr, wordToStr, DisplayCode, getPixelValue } from './transmit.ts' function orig_byteToStr(v: number) { return String.fromCharCode((v & 0xF) + 97, ((v >> 4) & 0xF) + 97); } function orig_wordToStr(v: number) { return byteToStr(v & 0xFF) + byteToStr((v >> 8) & 0xFF); } function orig_displayCode(epdInd = 22) { return "EPD" + String.fromCharCode(epdInd + 97) + "_" } function orig_getVal(p: { data: Uint8ClampedArray }, i: number) { if ((p.data[i]==0x00) && (p.data[i+1]==0x00)) return 0 if ((p.data[i]==0xFF) && (p.data[i+1]==0xFF)) return 1 if ((p.data[i]==0x7F) && (p.data[i+1]==0x7F)) return 2 return 3 } Deno.test(function test_byteToStr() { const testValues = [0,1,2,23,42,255] const results = testValues.map(v => byteToStr(v)) const expected = testValues.map(v => orig_byteToStr(v)) assertEquals(results, expected) }) Deno.test(function test_wordToStr() { const testValues = [0,1,2,23,42,384] const results = testValues.map(v => wordToStr(v)) const expected = testValues.map(v => orig_wordToStr(v)) assertEquals(results, expected) }) Deno.test(function test_displayCode() { assertEquals(orig_displayCode(), DisplayCode) }) Deno.test(function test_getPixelValue() { // 4 pixels: white, black, black, white const data = new Uint8ClampedArray([ 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 255, 255, 255, ]) const results = [ getPixelValue(data, 0 << 2), getPixelValue(data, 1 << 2), getPixelValue(data, 2 << 2), getPixelValue(data, 3 << 2), ] const expected = [ orig_getVal({ data }, 0 << 2), orig_getVal({ data }, 1 << 2), orig_getVal({ data }, 2 << 2), orig_getVal({ data }, 3 << 2), ] assertEquals(results, expected) })