From f9290b1a8676649d15225023b253eaf9979727ae Mon Sep 17 00:00:00 2001 From: root Date: Sun, 10 Mar 2024 12:52:15 +0800 Subject: [PATCH] 0310 --- lab1/main_test.js | 42 ++++++++++++++++++--------- lab1/validate.sh | 74 +++++++++++++++++++++++------------------------ 2 files changed, 66 insertions(+), 50 deletions(-) diff --git a/lab1/main_test.js b/lab1/main_test.js index 74a716b4..991b449f 100644 --- a/lab1/main_test.js +++ b/lab1/main_test.js @@ -2,22 +2,38 @@ const test = require('node:test'); const assert = require('assert'); const { MyClass, Student } = require('./main'); -test("Test MyClass's addStudent", () => { - // TODO - throw new Error("Test not implemented"); +test("test MyClass addStudent", async (t) => { + const myClass = new MyClass(); + const student = new Student(); + student.setName("A"); + const index = myClass.addStudent(student); + + assert.strictEqual(myClass.students[index], student); + + +}); + +test("test MyClass getStudentById", async (t) => { + const myClass = new MyClass(); + const student = new Student(); + student.setName("B"); + const index = myClass.addStudent(student); + + const foundStudent = myClass.getStudentById(index); + assert.strictEqual(foundStudent, student); }); -test("Test MyClass's getStudentById", () => { - // TODO - throw new Error("Test not implemented"); +test("test Student setName", async (t) => { + const student = new Student(); + student.setName("A"); + + assert.strictEqual(student.getName(), "A"); }); -test("Test Student's setName", () => { - // TODO - throw new Error("Test not implemented"); +test("test Student getName", async (t) => { + const student = new Student(); + student.setName("B"); + + assert.strictEqual(student.getName(), "B"); }); -test("Test Student's getName", () => { - // TODO - throw new Error("Test not implemented"); -}); \ No newline at end of file diff --git a/lab1/validate.sh b/lab1/validate.sh index e1e5d6c9..8f2fcd42 100755 --- a/lab1/validate.sh +++ b/lab1/validate.sh @@ -1,38 +1,38 @@ -#!/bin/bash - -# Check for unwanted files -for file in *; do - if [[ $file != "main.js" && $file != "main_test.js" && $file != "README.md" && $file != "validate.sh" ]]; then - echo "[!] Unwanted file detected: $file." - exit 1 - fi -done - -node=$(which node) -test_path="${BASH_SOURCE[0]}" -solution_path="$(realpath .)" -tmp_dir=$(mktemp -d -t lab1-XXXXXXXXXX) - -cd $tmp_dir - -rm -rf * -cp $solution_path/*.js . -result=$($"node" --test --experimental-test-coverage) ; ret=$? -if [ $ret -ne 0 ] ; then - echo "[!] testing fails." - exit 1 -else - coverage=$(echo "$result" | grep 'all files' | awk -F '|' '{print $2}' | sed 's/ //g') - if (( $(echo "$coverage < 100" | bc -l) )); then - echo "[!] Coverage is only $coverage%, should be 100%." - exit 1 - else - echo "[V] Coverage is 100%, great job!" - fi -fi - -rm -rf $tmp_dir - -exit 0 - +#!/bin/bash + +# Check for unwanted files +for file in *; do + if [[ $file != "main.js" && $file != "main_test.js" && $file != "README.md" && $file != "validate.sh" ]]; then + echo "[!] Unwanted file detected: $file." + exit 1 + fi +done + +node=$(which node) +test_path="${BASH_SOURCE[0]}" +solution_path="$(realpath .)" +tmp_dir=$(mktemp -d -t lab1-XXXXXXXXXX) + +cd $tmp_dir + +rm -rf * +cp $solution_path/*.js . +result=$($"node" --test --experimental-test-coverage) ; ret=$? +if [ $ret -ne 0 ] ; then + echo "[!] testing fails." + exit 1 +else + coverage=$(echo "$result" | grep 'all files' | awk -F '|' '{print $2}' | sed 's/ //g') + if (( $(echo "$coverage < 100" | bc -l) )); then + echo "[!] Coverage is only $coverage%, should be 100%." + exit 1 + else + echo "[V] Coverage is 100%, great job!" + fi +fi + +rm -rf $tmp_dir + +exit 0 + # vim: set fenc=utf8 ff=unix et sw=2 ts=2 sts=2: \ No newline at end of file