Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions fraction_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,42 @@ Deno.test("1/3 + 2/6 = 2/3 is roughly 0.67", () => {
// Assert
assertAlmostEquals(left.toFloat(0.01), 0.67);
});

Deno.test("1/2 - 1/4 = 1/4 is roughly 0.25", () => {
// Arrange
const left = new Fraction(1, 2);
const right = new Fraction(1, 4);
// Act
left.subtract(right);
// Assert
assertAlmostEquals(left.toFloat(0.01), 0.25);
});

Deno.test("1/2 * 1/4 = 1/8 is roughly 0.125", () => {
// Arrange
const left = new Fraction(1, 2);
const right = new Fraction(1, 4);
// Act
left.multiply(right);
// Assert
assertAlmostEquals(left.toFloat(0.001), 0.125);
});

Deno.test("1/2 / 1/4 = 2/1 is roughly 2.0", () => {
// Arrange
const left = new Fraction(1, 2);
const right = new Fraction(1, 4);
// Act
left.divide(right);
// Assert
assertAlmostEquals(left.toFloat(0.01), 2.0);
});

// Deno.test("parse 1/2", () => {
// // Act
// const fraction = Fraction.parse("1/2");
// // Assert
// assertEquals(fraction.numerator, 1);
// assertEquals(fraction.denominator, 2);
// });

18 changes: 18 additions & 0 deletions gcd.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
export class GCD {
constructor(
private a: number,
private b: number,
) {}

public shorten(): [number, number] {
const gcd = this.gcd(this.a, this.b);
return [this.a / gcd, this.b / gcd];
}

private gcd(a: number, b: number): number {
while (b !== 0) {
[a, b] = [b, a % b];
}
return a;
}
}
12 changes: 12 additions & 0 deletions gcd_test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { assertEquals } from "@std/assert";
import { GCD } from "./gcd.ts";


Deno.test("shorten 1/1 returns [1, 1]", () => {
// Arrange
const gcd = new GCD(1, 1);
// Act
const result = gcd.shorten();
// Assert
assertEquals(result, [1, 1]);
});
12 changes: 12 additions & 0 deletions geometry_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,15 @@ Deno.test("circumference of a circle with radius 5 is roughtly 31.416", () => {
// Then
assertAlmostEquals(actual, 31.416, 0.01);
});

Deno.test("area of a circle with radius 5 is roughtly 78.54", () => {
// Given
const circle = new Circle(new Point2D(3, 4), 5);

// When
const actual = circle.area();
// Then
assertAlmostEquals(actual, 78.54, 0.01);
});