60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
import { commands } from "./secret-handshake";
|
|
|
|
describe("Secret Handshake", () => {
|
|
describe("Create A Handshake For A Number", () => {
|
|
it("wink for 1", () => {
|
|
expect(commands(1)).toEqual(["wink"]);
|
|
});
|
|
|
|
it("double blink for 10", () => {
|
|
expect(commands(2)).toEqual(["double blink"]);
|
|
});
|
|
|
|
it("close your eyes for 100", () => {
|
|
expect(commands(4)).toEqual(["close your eyes"]);
|
|
});
|
|
|
|
it("jump for 1000", () => {
|
|
expect(commands(8)).toEqual(["jump"]);
|
|
});
|
|
|
|
it("combine two actions", () => {
|
|
expect(commands(3)).toEqual(["wink", "double blink"]);
|
|
});
|
|
|
|
it("reverse two actions", () => {
|
|
expect(commands(19)).toEqual(["double blink", "wink"]);
|
|
});
|
|
|
|
it("reversing one action gives the same action", () => {
|
|
expect(commands(24)).toEqual(["jump"]);
|
|
});
|
|
|
|
it("reversing no actions still gives no actions", () => {
|
|
expect(commands(16)).toEqual([]);
|
|
});
|
|
|
|
it("all possible actions", () => {
|
|
expect(commands(15)).toEqual([
|
|
"wink",
|
|
"double blink",
|
|
"close your eyes",
|
|
"jump",
|
|
]);
|
|
});
|
|
|
|
it("reverse all possible actions", () => {
|
|
expect(commands(31)).toEqual([
|
|
"jump",
|
|
"close your eyes",
|
|
"double blink",
|
|
"wink",
|
|
]);
|
|
});
|
|
|
|
it("do nothing for zero", () => {
|
|
expect(commands(0 as 1)).toEqual([]);
|
|
});
|
|
});
|
|
});
|