Bun
sh
bun init
Directory Structure
.
|-- README.md
|-- bun.lockb
|-- index.ts
|-- package.json
`-- tsconfig.json
sh
bun run index.ts
Result
Hello via Bun!
Test
Directory Structure
.
|-- Makefile
|-- README.md
|-- bun.lockb
|-- package.json
|-- src
| |-- fizz-buzz
| | |-- index.test.ts
| | `-- index.ts
| `-- index.ts
`-- tsconfig.json
ts
export const fizzBuzz = (number: number): string => {
if (number % 15 === 0) return "FizzBuzz";
if (number % 3 === 0) return "Fizz";
if (number % 5 === 0) return "Buzz";
return number.toString();
};
TestCode
ts
import { expect, test } from "bun:test";
import { fizzBuzz } from ".";
const input: number[] = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100
]
const expected: string[] = [
"1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz",
"11", "Fizz", "13", "14", "FizzBuzz", "16", "17", "Fizz", "19", "Buzz",
"Fizz", "22", "23", "Fizz", "Buzz", "26", "Fizz", "28", "29", "FizzBuzz",
"31", "32", "Fizz", "34", "Buzz", "Fizz", "37", "38", "Fizz", "Buzz",
"41", "Fizz", "43", "44", "FizzBuzz", "46", "47", "Fizz", "49", "Buzz",
"Fizz", "52", "53", "Fizz", "Buzz", "56", "Fizz", "58", "59", "FizzBuzz",
"61", "62", "Fizz", "64", "Buzz", "Fizz", "67", "68", "Fizz", "Buzz",
"71", "Fizz", "73", "74", "FizzBuzz", "76", "77", "Fizz", "79", "Buzz",
"Fizz", "82", "83", "Fizz", "Buzz", "86", "Fizz", "88", "89", "FizzBuzz",
"91", "92", "Fizz", "94", "Buzz", "Fizz", "97", "98", "Fizz", "Buzz"
]
const cases: [number, string][] = input.map((v, i) => [v, expected[i]]);
test.each(cases)('fizzBuzz(%p) -> %p', (input, expected) => {
const result = fizzBuzz(input);
expect(result).toBe(expected);
});
Run tests
sh
bun test
Details
sh
bun test v1.1.27 ((********)
src/fizz-buzz/index.test.ts:
✓ fizzBuzz(1) -> "1"
✓ fizzBuzz(2) -> "2"
✓ fizzBuzz(3) -> "Fizz"
✓ fizzBuzz(4) -> "4"
✓ fizzBuzz(5) -> "Buzz"
✓ fizzBuzz(6) -> "Fizz"
✓ fizzBuzz(7) -> "7"
✓ fizzBuzz(8) -> "8"
✓ fizzBuzz(9) -> "Fizz"
✓ fizzBuzz(10) -> "Buzz"
✓ fizzBuzz(11) -> "11"
✓ fizzBuzz(12) -> "Fizz"
✓ fizzBuzz(13) -> "13"
✓ fizzBuzz(14) -> "14"
✓ fizzBuzz(15) -> "FizzBuzz"
✓ fizzBuzz(16) -> "16"
✓ fizzBuzz(17) -> "17"
✓ fizzBuzz(18) -> "Fizz"
✓ fizzBuzz(19) -> "19"
✓ fizzBuzz(20) -> "Buzz"
✓ fizzBuzz(21) -> "Fizz"
✓ fizzBuzz(22) -> "22"
✓ fizzBuzz(23) -> "23"
✓ fizzBuzz(24) -> "Fizz"
✓ fizzBuzz(25) -> "Buzz"
✓ fizzBuzz(26) -> "26"
✓ fizzBuzz(27) -> "Fizz"
✓ fizzBuzz(28) -> "28"
✓ fizzBuzz(29) -> "29"
✓ fizzBuzz(30) -> "FizzBuzz"
✓ fizzBuzz(31) -> "31"
✓ fizzBuzz(32) -> "32"
✓ fizzBuzz(33) -> "Fizz"
✓ fizzBuzz(34) -> "34"
✓ fizzBuzz(35) -> "Buzz"
✓ fizzBuzz(36) -> "Fizz"
✓ fizzBuzz(37) -> "37"
✓ fizzBuzz(38) -> "38"
✓ fizzBuzz(39) -> "Fizz"
✓ fizzBuzz(40) -> "Buzz"
✓ fizzBuzz(41) -> "41"
✓ fizzBuzz(42) -> "Fizz"
✓ fizzBuzz(43) -> "43"
✓ fizzBuzz(44) -> "44"
✓ fizzBuzz(45) -> "FizzBuzz"
✓ fizzBuzz(46) -> "46"
✓ fizzBuzz(47) -> "47"
✓ fizzBuzz(48) -> "Fizz"
✓ fizzBuzz(49) -> "49"
✓ fizzBuzz(50) -> "Buzz"
✓ fizzBuzz(51) -> "Fizz"
✓ fizzBuzz(52) -> "52"
✓ fizzBuzz(53) -> "53"
✓ fizzBuzz(54) -> "Fizz"
✓ fizzBuzz(55) -> "Buzz"
✓ fizzBuzz(56) -> "56"
✓ fizzBuzz(57) -> "Fizz"
✓ fizzBuzz(58) -> "58"
✓ fizzBuzz(59) -> "59"
✓ fizzBuzz(60) -> "FizzBuzz"
✓ fizzBuzz(61) -> "61"
✓ fizzBuzz(62) -> "62"
✓ fizzBuzz(63) -> "Fizz"
✓ fizzBuzz(64) -> "64"
✓ fizzBuzz(65) -> "Buzz"
✓ fizzBuzz(66) -> "Fizz"
✓ fizzBuzz(67) -> "67"
✓ fizzBuzz(68) -> "68"
✓ fizzBuzz(69) -> "Fizz"
✓ fizzBuzz(70) -> "Buzz"
✓ fizzBuzz(71) -> "71"
✓ fizzBuzz(72) -> "Fizz"
✓ fizzBuzz(73) -> "73"
✓ fizzBuzz(74) -> "74"
✓ fizzBuzz(75) -> "FizzBuzz"
✓ fizzBuzz(76) -> "76"
✓ fizzBuzz(77) -> "77"
✓ fizzBuzz(78) -> "Fizz"
✓ fizzBuzz(79) -> "79"
✓ fizzBuzz(80) -> "Buzz"
✓ fizzBuzz(81) -> "Fizz"
✓ fizzBuzz(82) -> "82"
✓ fizzBuzz(83) -> "83"
✓ fizzBuzz(84) -> "Fizz"
✓ fizzBuzz(85) -> "Buzz"
✓ fizzBuzz(86) -> "86"
✓ fizzBuzz(87) -> "Fizz"
✓ fizzBuzz(88) -> "88"
✓ fizzBuzz(89) -> "89"
✓ fizzBuzz(90) -> "FizzBuzz"
✓ fizzBuzz(91) -> "91"
✓ fizzBuzz(92) -> "92"
✓ fizzBuzz(93) -> "Fizz"
✓ fizzBuzz(94) -> "94"
✓ fizzBuzz(95) -> "Buzz"
✓ fizzBuzz(96) -> "Fizz"
✓ fizzBuzz(97) -> "97"
✓ fizzBuzz(98) -> "98"
✓ fizzBuzz(99) -> "Fizz"
✓ fizzBuzz(100) -> "Buzz"
100 pass
0 fail
100 expect() calls
Ran 100 tests across 1 files. [**.**ms]