CMU Coding Bootcamp

feat: oct 21

thecoded.prof 952376a8 b545761f

verified
+6
ts/oct21/collatz.ts
··· 1 + export const collatz = (n: number): number[] => { 2 + if (n <= 0) throw new Error("Input must be a positive integer"); 3 + if (n === 2) return [2, 1]; 4 + if (n % 2 === 0) return [n, ...collatz(n / 2)]; 5 + return [n, ...collatz(3 * n + 1)]; 6 + };
+8
ts/oct21/evenDigits.ts
··· 1 + export const evenDigits = (n: number): boolean => { 2 + while (n > 0) { 3 + const digit = n % 10; 4 + if (digit % 2 !== 0) return false; 5 + n = Math.floor(n / 10); 6 + } 7 + return true; 8 + };
+6
ts/oct21/fizzBuzz.ts
··· 1 + export const fizzBuzz = (n: number): string => { 2 + if (n % 3 === 0 && n % 5 === 0) return "fizzBuzz"; 3 + if (n % 3 === 0) return "fizz"; 4 + if (n % 5 === 0) return "buzz"; 5 + return n.toString(); 6 + };
+23
ts/oct21/index.test.ts
··· 1 + import { expect, test } from "bun:test"; 2 + 3 + import { fizzBuzz } from "./fizzBuzz"; 4 + import { collatz } from "./collatz"; 5 + import { evenDigits } from "./evenDigits"; 6 + 7 + test("FizzBuzz", () => { 8 + expect(fizzBuzz(1)).toBe("1"); 9 + expect(fizzBuzz(3)).toBe("fizz"); 10 + expect(fizzBuzz(5)).toBe("buzz"); 11 + expect(fizzBuzz(15)).toBe("fizzBuzz"); 12 + }); 13 + 14 + test("Collatz", () => { 15 + expect(collatz(3)).toEqual([3, 10, 5, 16, 8, 4, 2, 1]); 16 + expect(collatz(1)).toEqual([1, 4, 2, 1]); 17 + expect(collatz(4)).toEqual([4, 2, 1]); 18 + }); 19 + 20 + test("All Even Digits", () => { 21 + expect(evenDigits(2486)).toBe(true); 22 + expect(evenDigits(1234)).toBe(false); 23 + });