Before the lab
- Study for the racket quiz
- Read Chapter 6 of Eloquent JavaScript
Do the Vector Type exercise.
test("addition", (t) =>
assert.deepStrictEqual(new Vec(1, 2).plus(new Vec(2, 3)),
new Vec(3,5)));
test("subtraction", (t)=>
assert.deepStrictEqual(new Vec(1, 2).minus(new Vec(2, 3)),
new Vec(-1,-1)));
test("length", (t) =>
assert.strictEqual(new Vec(3, 4).length,5));
Do the
Group
exercise. Instead of the suggested array, use an object to store the
elements of the "Group". The simplest way to implement from
is to
loop over the iterable
argument and repeatedly call add
.
const test=require("node:test");
const assert=require("assert");
class Group {
constructor() {
this.elements={}
}
add(element) {
this.elements[element]=true;
}
has(element) {
}
delete(element) {
}
static from(iterable) {
}
}
let group = Group.from([10, 20]);
test("has yes",(t)=>assert.strictEqual(group.has(10),true));
test("has no",(t)=>assert.strictEqual(group.has(30),false));
test("add existing is not error", (t)=>group.add(10));
test("delete existing", (t) => {
group.delete(10);
assert.strictEqual(group.has(10),false);
});