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]