@@ -3,21 +3,97 @@ const assert = require('assert');
33const { MyClass, Student } = require ( './main' ) ;
44
55test ( "Test MyClass's addStudent" , ( ) => {
6- // TODO
7- throw new Error ( "Test not implemented" ) ;
6+
7+ // Create an instance of MyClass
8+ const myClass = new MyClass ( ) ;
9+
10+ // Test 1: Passing a non-Student object should return -1
11+ assert . strictEqual ( myClass . addStudent ( "Jonh" ) , - 1 , "test 1 at addStudent" ) ;
12+
13+ // Test 2: Adding a valid Student object should return index 0
14+ const student0 = new Student ( ) ;
15+ student0 . setName ( "John" ) ;
16+ assert . strictEqual ( myClass . addStudent ( student0 ) , 0 , "test 2 at addStudent" ) ;
17+
18+ // Test 3: Adding another Student should return index 1 (Fix the expected value)
19+ const student1 = new Student ( ) ;
20+ student1 . setName ( "Jane" ) ;
21+ assert . strictEqual ( myClass . addStudent ( student1 ) , 1 , "test 3 at addStudent" ) ;
22+
23+ // No need to throw an error; tests are implemented
24+ // throw new Error("Test not implemented");
825} ) ;
926
1027test ( "Test MyClass's getStudentById" , ( ) => {
11- // TODO
12- throw new Error ( "Test not implemented" ) ;
28+
29+ // Create an instance of MyClass
30+ const myClass = new MyClass ( ) ;
31+
32+ // add student
33+ const student0 = new Student ( ) , student1 = new Student ( ) , student2 = new Student ( ) ;
34+ student0 . setName ( "Doe" ) ;
35+
36+ const newStudentId0 = myClass . addStudent ( student0 ) ;
37+
38+ // Test 1: Passing an invalid ID (< 0) should return null
39+ assert . strictEqual ( myClass . getStudentById ( - 1 ) , null , "test 1 at getStudentById" ) ;
40+
41+ // Test 2: Valid ID should return the correct student object
42+ assert . strictEqual ( myClass . getStudentById ( newStudentId0 ) , student0 , "test 2 at getStudentById" ) ;
43+
44+ // Test 3: Passing an out-of-bounds ID should return null
45+ assert . strictEqual ( myClass . getStudentById ( 999 ) , null , "test 3 at getStudentById" ) ;
46+
47+ // No need to throw an error; tests are implemented
48+ // throw new Error("Test not implemented");
1349} ) ;
1450
1551test ( "Test Student's setName" , ( ) => {
16- // TODO
17- throw new Error ( "Test not implemented" ) ;
52+
53+ // Test 1: userName is an integer, should not change name (remain undefined)
54+ const student0 = new Student ( ) ;
55+ const name0 = 20250306 ;
56+ student0 . setName ( name0 ) ;
57+ assert . strictEqual ( student0 . getName ( ) , '' , "test 1 at setName" ) ;
58+
59+ // Test 2: userName is a float, should not change name (remain undefined)
60+ const student1 = new Student ( ) ;
61+ const name1 = 3.14156 ;
62+ student1 . setName ( name1 ) ;
63+ assert . strictEqual ( student1 . getName ( ) , '' , "test 2 at setName" ) ;
64+
65+ // Test 3: userName is a valid string, should set the name correctly
66+ const student2 = new Student ( ) ;
67+ const name3 = 'Smith' ;
68+ student2 . setName ( name3 ) ;
69+ assert . strictEqual ( student2 . getName ( ) , name3 , "test 3 at setName" ) ;
70+
71+ // No need to throw an error; tests are implemented
72+ // throw new Error("Test not implemented");
1873} ) ;
1974
2075test ( "Test Student's getName" , ( ) => {
21- // TODO
22- throw new Error ( "Test not implemented" ) ;
76+
77+ // Test 1: Set a valid name and retrieve it
78+ const student0 = new Student ( ) ;
79+ const name0 = "John" ;
80+ student0 . setName ( name0 ) ;
81+ assert . strictEqual ( student0 . getName ( ) , name0 , "test 1 at getName" ) ;
82+
83+ // Test 2: Set an invalid name (integer), getName() should return an empty string
84+ const student1 = new Student ( ) ;
85+ student1 . setName ( 1 ) ;
86+ assert . strictEqual ( student1 . getName ( ) , '' , "test 2 at getName" ) ;
87+
88+ // Test 3: Set an empty string as name, should return an empty string
89+ const student2 = new Student ( ) ;
90+ student2 . setName ( '' ) ;
91+ assert . strictEqual ( student2 . getName ( ) , '' , "test 3 at getName" ) ;
92+
93+ // Test 4: Default value of getName() before setting any name
94+ const student3 = new Student ( ) ;
95+ assert . strictEqual ( student3 . getName ( ) , '' , "test 4 at getName" ) ;
96+
97+ // No need to throw an error; tests are implemented
98+ // throw new Error("Test not implemented");
2399} ) ;
0 commit comments