@@ -2,69 +2,4 @@ const {describe, it} = require('node:test');
22const assert = require ( 'assert' ) ;
33const { Calculator } = require ( './main' ) ;
44
5- describe ( 'Calculator' , ( ) => {
6- describe ( 'exp' , ( ) => {
7- const calculator = new Calculator ( ) ;
8-
9- it ( 'should throw "unsupported operand type" for non-finite numbers' , ( ) => {
10- const invalidInputs = [ NaN , Infinity , - Infinity , 'string' , null , undefined ] ;
11- invalidInputs . forEach ( input => {
12- assert . throws ( ( ) => calculator . exp ( input ) , Error ( 'unsupported operand type' ) ) ;
13- } ) ;
14- } ) ;
15-
16- it ( 'should throw "overflow" for large numbers' , ( ) => {
17- const largeInputs = [ 1000 , 10000 , 100000 ] ;
18- largeInputs . forEach ( input => {
19- assert . throws ( ( ) => calculator . exp ( input ) , Error ( 'overflow' ) ) ;
20- } ) ;
21- } ) ;
22-
23- it ( 'should return correct exp value for valid inputs' , ( ) => {
24- const testCases = [
25- { input : 0 , expected : 1 } ,
26- { input : 1 , expected : Math . exp ( 1 ) } ,
27- { input : - 1 , expected : Math . exp ( - 1 ) } ,
28- ] ;
29- testCases . forEach ( ( { input, expected } ) => {
30- assert . strictEqual ( calculator . exp ( input ) , expected ) ;
31- } ) ;
32- } ) ;
33- } ) ;
34-
35- describe ( 'log' , ( ) => {
36- const calculator = new Calculator ( ) ;
37-
38- it ( 'should throw "unsupported operand type" for non-finite numbers' , ( ) => {
39- const invalidInputs = [ NaN , Infinity , - Infinity , 'string' , null , undefined ] ;
40- invalidInputs . forEach ( input => {
41- assert . throws ( ( ) => calculator . log ( input ) , Error ( 'unsupported operand type' ) ) ;
42- } ) ;
43- } ) ;
44-
45- it ( 'should throw "math domain error (1)" for zero' , ( ) => {
46- const invalidInputs = [ 0 ] ;
47- invalidInputs . forEach ( input => {
48- assert . throws ( ( ) => calculator . log ( input ) , Error ( 'math domain error (1)' ) ) ;
49- } ) ;
50- } ) ;
51-
52- it ( 'should throw "math domain error (2)" for finite negative numbers' , ( ) => {
53- const invalidInputs = [ - 1 , - 5 , - 100 ] ;
54- invalidInputs . forEach ( input => {
55- assert . throws ( ( ) => calculator . log ( input ) , Error ( 'math domain error (2)' ) ) ;
56- } ) ;
57- } ) ;
58-
59- it ( 'should return correct log value for valid inputs' , ( ) => {
60- const testCases = [
61- { input : 1 , expected : 0 } ,
62- { input : Math . E , expected : 1 } ,
63- { input : 10 , expected : Math . log ( 10 ) } ,
64- ] ;
65- testCases . forEach ( ( { input, expected } ) => {
66- assert . strictEqual ( calculator . log ( input ) , expected ) ;
67- } ) ;
68- } ) ;
69- } ) ;
70- } ) ;
5+ // TODO: write your tests here
0 commit comments