std/bytes/repeat_test.ts
2024-04-29 11:57:30 +09:00

37 lines
1011 B
TypeScript

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import { assertEquals, assertThrows } from "@std/assert";
import { repeat } from "./repeat.ts";
Deno.test("repeat()", () => {
// input / output / count / error message
const repeatTestCase = [
["", "", 0],
["", "", 1],
["", "", 1.1, "Count must be a non-negative integer"],
["", "", 2],
["", "", 0],
["-", "", 0],
["-", "-", -1, "Count must be a non-negative integer"],
["-", "----------", 10],
["abc ", "abc abc abc ", 3],
];
for (const [input, output, count, errMsg] of repeatTestCase) {
if (errMsg) {
assertThrows(
() => {
repeat(new TextEncoder().encode(input as string), count as number);
},
Error,
errMsg as string,
);
} else {
const newBytes = repeat(
new TextEncoder().encode(input as string),
count as number,
);
assertEquals(new TextDecoder().decode(newBytes), output);
}
}
});