@@ -180,11 +180,6 @@ describe("Using degrees", () => {
180
180
if ( result . isErr ( ) ) expect . unreachable ( `Could not use the answer register: (${ result . error } )` ) ;
181
181
expect ( result . value . toNumber ( ) ) . toBeCloseTo ( 0 ) ;
182
182
}
183
- {
184
- const result = evaluate ( [ t . tan , t . lbrk , litr ( 90 ) , t . rbrk ] , d ( 0 ) , d ( 0 ) , "deg" ) ;
185
- if ( result . isErr ( ) ) expect . unreachable ( `Could not use the answer register: (${ result . error } )` ) ;
186
- expect ( result . value . toNumber ( ) ) . toBe ( - 707106781186547.5 ) ;
187
- }
188
183
} ) ;
189
184
test ( "45°" , ( ) => {
190
185
{
@@ -305,3 +300,40 @@ describe("Syntax Errors", () => {
305
300
[ t . sin , t . lbrk , t . sin , t . lbrk , litr ( 10 ) , t . rbrk ] ,
306
301
] ) ;
307
302
} ) ;
303
+
304
+ describe ( "Tangent errors" , ( ) => {
305
+ test ( "90°" , ( ) => {
306
+ const result = evaluate ( [ t . tan , t . lbrk , litr ( 90 ) , t . rbrk ] , d ( 0 ) , d ( 0 ) , "deg" ) ;
307
+ expect ( result . isErr ( ) ) . toBe ( true ) ;
308
+ } ) ;
309
+ test ( "90° + 180°" , ( ) => {
310
+ const result = evaluate ( [ t . tan , t . lbrk , litr ( 90 ) , t . add , litr ( 180 ) , t . rbrk ] , d ( 0 ) , d ( 0 ) , "deg" ) ;
311
+ expect ( result . isErr ( ) ) . toBe ( true ) ;
312
+ } ) ;
313
+ test ( "90° - 180°" , ( ) => {
314
+ const result = evaluate ( [ t . tan , t . lbrk , litr ( 90 ) , t . sub , litr ( 180 ) , t . rbrk ] , d ( 0 ) , d ( 0 ) , "deg" ) ;
315
+ expect ( result . isErr ( ) ) . toBe ( true ) ;
316
+ } ) ;
317
+ test ( "90° + 50_000 × 180°" , ( ) => {
318
+ const result = evaluate (
319
+ [ t . tan , t . lbrk , litr ( 90 ) , t . add , litr ( 50_000 ) , t . mul , litr ( 180 ) , t . rbrk ] ,
320
+ d ( 0 ) ,
321
+ d ( 0 ) ,
322
+ "deg"
323
+ ) ;
324
+ expect ( result . isErr ( ) ) . toBe ( true ) ;
325
+ } ) ;
326
+ test ( "90° + 50_000.1 × 180°" , ( ) => {
327
+ const result = evaluate (
328
+ [ t . tan , t . lbrk , litr ( 90 ) , t . add , litr ( 50_000.1 ) , t . mul , litr ( 180 ) , t . rbrk ] ,
329
+ d ( 0 ) ,
330
+ d ( 0 ) ,
331
+ "deg"
332
+ ) ;
333
+ expect ( result . isErr ( ) ) . toBe ( false ) ;
334
+ } ) ;
335
+ test ( "90° + 0.001 × 180°" , ( ) => {
336
+ const result = evaluate ( [ t . tan , t . lbrk , litr ( 90 ) , t . add , litr ( 0.001 ) , t . mul , litr ( 180 ) , t . rbrk ] , d ( 0 ) , d ( 0 ) , "deg" ) ;
337
+ expect ( result . isErr ( ) ) . toBe ( false ) ;
338
+ } ) ;
339
+ } ) ;
0 commit comments