From 123e7d56f1e8bf2373825b0edcf12097b95f2bc9 Mon Sep 17 00:00:00 2001 From: YingMuo Date: Wed, 6 Mar 2024 03:33:39 +0800 Subject: [PATCH] Finish lab01 --- lab1/main_test.js | 53 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/lab1/main_test.js b/lab1/main_test.js index 74a716b4..a75da574 100644 --- a/lab1/main_test.js +++ b/lab1/main_test.js @@ -3,21 +3,58 @@ const assert = require('assert'); const { MyClass, Student } = require('./main'); test("Test MyClass's addStudent", () => { - // TODO - throw new Error("Test not implemented"); + const myClass = new MyClass(); + const names = ['John', 'Jane', 'Doe', 'Smith']; + var ctr = 0; + const clseeList = []; + names.forEach(name => { + const student = new Student(); + student.setName(name); + const newStudentId = myClass.addStudent(student); + assert.strictEqual(newStudentId, ctr++); + clseeList.push(student); + }); + assert.deepStrictEqual(myClass.students, clseeList); + const newStudentId = myClass.addStudent('Failed'); + assert.strictEqual(newStudentId, -1); }); test("Test MyClass's getStudentById", () => { - // TODO - throw new Error("Test not implemented"); + const myClass = new MyClass(); + const names = ['John', 'Jane', 'Doe', 'Smith']; + var ctr = 0; + const clseeList = []; + names.forEach(name => { + const student = new Student(); + student.setName(name); + const newStudentId = myClass.addStudent(student); + clseeList.push(student); + }); + for (var i = 0; i < 4; ++i) { + assert.strictEqual(myClass.getStudentById(i), clseeList[i]); + } + const newStudentId = myClass.getStudentById(4); + assert.strictEqual(newStudentId, null); + const newStudentId2 = myClass.getStudentById(-1); + assert.strictEqual(newStudentId2, null); + const newStudentId3 = myClass.getStudentById("A"); + assert.strictEqual(newStudentId3, undefined); }); test("Test Student's setName", () => { - // TODO - throw new Error("Test not implemented"); + const student = new Student(); + assert.strictEqual(student.name, undefined); + student.setName(123); + assert.strictEqual(student.name, undefined); + student.setName('Test'); + assert.strictEqual(student.name, 'Test'); }); test("Test Student's getName", () => { - // TODO - throw new Error("Test not implemented"); + const student = new Student(); + const stduentName = student.getName(); + assert.strictEqual(stduentName, ''); + student.setName('Test'); + const stduentName2 = student.getName(); + assert.strictEqual(stduentName2, 'Test'); }); \ No newline at end of file