Skip to content

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]