1
+ using System . Numerics ;
2
+ using Xunit ;
3
+
4
+ namespace Silk . NET . Maths . Tests
5
+ {
6
+ public class ScalarTests
7
+ {
8
+ [ Fact ] public void AddBigInteger ( )
9
+ => Assert . Equal ( new BigInteger ( 100 ) , Scalar . Add ( BigInteger . One , 99 ) ) ;
10
+
11
+ [ Fact ] public void SubtractBigInteger ( )
12
+ => Assert . Equal ( new BigInteger ( - 98 ) , Scalar . Subtract ( BigInteger . One , 99 ) ) ;
13
+
14
+ [ Fact ] public void MultiplyBigInteger ( )
15
+ => Assert . Equal ( new BigInteger ( 990 ) , Scalar . Multiply ( new BigInteger ( 10 ) , 99 ) ) ;
16
+
17
+ [ Fact ] public void DivideBigInteger ( )
18
+ => Assert . Equal ( new BigInteger ( 5 ) , Scalar . Divide ( new BigInteger ( 16 ) , 3 ) ) ;
19
+
20
+ [ Fact ] public void LessThanBigInteger ( )
21
+ => Assert . True ( Scalar . LessThan ( new BigInteger ( 10 ) , 99 ) ) ;
22
+
23
+ [ Fact ] public void GreaterThanBigInteger ( )
24
+ => Assert . False ( Scalar . GreaterThan ( new BigInteger ( 10 ) , 99 ) ) ;
25
+
26
+ [ Fact ] public void LessThanOrEqualBigInteger ( )
27
+ => Assert . True ( Scalar . LessThanOrEqual ( new BigInteger ( 10 ) , 99 ) ) ;
28
+
29
+ [ Fact ] public void GreaterThanOrEqualBigInteger ( )
30
+ => Assert . False ( Scalar . GreaterThanOrEqual ( new BigInteger ( 10 ) , 99 ) ) ;
31
+
32
+ [ Fact ] public void EqualBigInteger1 ( )
33
+ => Assert . False ( Scalar . Equal ( new BigInteger ( 10 ) , 99 ) ) ;
34
+
35
+ [ Fact ] public void EqualBigInteger2 ( )
36
+ => Assert . True ( Scalar . Equal ( new BigInteger ( 10 ) , 10 ) ) ;
37
+
38
+ // [Fact(Skip = "Abs is unmanaged currently")] public void AbsBigInteger()
39
+ // => Assert.Equal(new BigInteger(5), Scalar.Abs(new BigInteger(-5)));
40
+
41
+
42
+ [ Fact ] public void AddComplex ( )
43
+ => Assert . Equal ( new Complex ( 109 , 5 ) , Scalar . Add ( new Complex ( 10 , 5 ) , 99 ) ) ;
44
+
45
+ [ Fact ] public void SubtractComplex ( )
46
+ => Assert . Equal ( new Complex ( - 89 , 5 ) , Scalar . Subtract ( new Complex ( 10 , 5 ) , 99 ) ) ;
47
+
48
+ [ Fact ] public void MultiplyComplex ( )
49
+ => Assert . Equal ( new Complex ( 990 , 495 ) , Scalar . Multiply ( new Complex ( 10 , 5 ) , 99 ) ) ;
50
+
51
+ [ Fact ] public void DivideComplex ( )
52
+ => Assert . Equal ( new Complex ( 10 / 99d , 5 / 99d ) , Scalar . Divide ( new Complex ( 10 , 5 ) , 99 ) ) ;
53
+
54
+ [ Fact ] public void EqualComplex1 ( )
55
+ => Assert . True ( Scalar . Equal ( new Complex ( 10 , 5 ) , new Complex ( 10 , 5 ) ) ) ;
56
+
57
+ [ Fact ] public void EqualComplex2 ( )
58
+ => Assert . False ( Scalar . Equal ( new Complex ( 10 , 5 ) , new Complex ( 10 , 6 ) ) ) ;
59
+
60
+ [ Fact ] public void IsFiniteComplex1 ( )
61
+ => Assert . True ( Scalar . IsFinite ( new Complex ( 10 , 5 ) ) ) ;
62
+
63
+ [ Fact ] public void IsFiniteComplex2 ( )
64
+ => Assert . False ( Scalar . IsFinite ( new Complex ( double . NaN , 5 ) ) ) ;
65
+
66
+ [ Fact ] public void IsFiniteComplex3 ( )
67
+ => Assert . False ( Scalar . IsFinite ( new Complex ( 10 , double . NaN ) ) ) ;
68
+
69
+ [ Fact ] public void IsFiniteComplex4 ( )
70
+ => Assert . False ( Scalar . IsFinite ( new Complex ( 10 , double . NegativeInfinity ) ) ) ;
71
+
72
+ [ Fact ] public void IsInfinityComplex1 ( )
73
+ => Assert . True ( Scalar . IsInfinity ( new Complex ( double . NegativeInfinity , 5 ) ) ) ;
74
+
75
+ [ Fact ] public void IsInfinityComplex2 ( )
76
+ => Assert . True ( Scalar . IsInfinity ( new Complex ( 5 , double . NegativeInfinity ) ) ) ;
77
+
78
+ [ Fact ] public void IsInfinityComplex3 ( )
79
+ => Assert . True ( Scalar . IsInfinity ( new Complex ( double . PositiveInfinity , 5 ) ) ) ;
80
+
81
+ [ Fact ] public void IsInfinityComplex4 ( )
82
+ => Assert . True ( Scalar . IsInfinity ( new Complex ( 5 , double . PositiveInfinity ) ) ) ;
83
+
84
+ [ Fact ] public void AbsComplex ( )
85
+ => Assert . Equal ( new Complex ( 5 , 0 ) , Scalar . Abs ( new Complex ( 3 , 4 ) ) ) ;
86
+ }
87
+ }
0 commit comments