Skip to content

Commit

Permalink
Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sys27 committed Oct 5, 2020
1 parent e1e583b commit a967bd3
Show file tree
Hide file tree
Showing 11 changed files with 251 additions and 18 deletions.
1 change: 0 additions & 1 deletion xFunc.Maths/Expressions/Hyperbolic/Cosh.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Collections.Immutable;
using System.Numerics;
using xFunc.Maths.Analyzers;
Expand Down
1 change: 0 additions & 1 deletion xFunc.Maths/Expressions/Hyperbolic/Sinh.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Collections.Immutable;
using System.Numerics;
using xFunc.Maths.Analyzers;
Expand Down
1 change: 0 additions & 1 deletion xFunc.Maths/Expressions/Hyperbolic/Tanh.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Collections.Immutable;
using System.Numerics;
using xFunc.Maths.Analyzers;
Expand Down
1 change: 0 additions & 1 deletion xFunc.Maths/Expressions/Matrices/MatrixExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

using System;
using System.Collections.Immutable;
using System.Linq;
using System.Threading.Tasks;
using xFunc.Maths.Resources;

Expand Down
1 change: 0 additions & 1 deletion xFunc.Maths/Expressions/Trigonometric/Arccos.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Collections.Immutable;
using System.Numerics;
using xFunc.Maths.Analyzers;
Expand Down
1 change: 0 additions & 1 deletion xFunc.Maths/Expressions/Trigonometric/Arcsin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Collections.Immutable;
using System.Numerics;
using xFunc.Maths.Analyzers;
Expand Down
1 change: 0 additions & 1 deletion xFunc.Maths/Expressions/Trigonometric/Arctan.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Collections.Immutable;
using System.Numerics;
using xFunc.Maths.Analyzers;
Expand Down
1 change: 0 additions & 1 deletion xFunc.Tests/Analyzers/SimplifierTests/AddSimplifierTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using xFunc.Maths.Expressions;
using xFunc.Maths.Expressions.Angles;
using Xunit;
Expand Down
1 change: 0 additions & 1 deletion xFunc.Tests/Expressions/ExpTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Numerics;
using xFunc.Maths.Expressions;
using xFunc.Maths.Expressions.ComplexNumbers;
Expand Down
47 changes: 38 additions & 9 deletions xFunc.Tests/Expressions/Matrices/DeterminantTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,43 @@ namespace xFunc.Tests.Expressions.Matrices
{
public class DeterminantTest
{
[Fact]
public void ExecuteSingleTest()
{
var matrix = new Matrix(new[]
{
new Vector(new IExpression[] { Number.One })
});

var det = new Determinant(matrix);
var expected = new NumberValue(1.0);

Assert.Equal(expected, det.Execute());
}

[Fact]
public void ExecuteDoubleTest()
{
var matrix = new Matrix(new[]
{
new Vector(new IExpression[] { Number.One, Number.Two }),
new Vector(new IExpression[] { new Number(3), new Number(4) }),
});

var det = new Determinant(matrix);
var expected = new NumberValue(-2.0);

Assert.Equal(expected, det.Execute());
}

[Fact]
public void ExecuteTest()
{
var matrix = new Matrix(new[]
{
new Vector(new[] { Number.One, new Number(-2), new Number(3) }),
new Vector(new[] { new Number(4), Number.Zero, new Number(6) }),
new Vector(new[] { new Number(-7), new Number(8), new Number(9) })
new Vector(new IExpression[] { Number.One, new Number(-2), new Number(3) }),
new Vector(new IExpression[] { new Number(4), Number.Zero, new Number(6) }),
new Vector(new IExpression[] { new Number(-7), new Number(8), new Number(9) })
});

var det = new Determinant(matrix);
Expand All @@ -43,8 +72,8 @@ public void ExecuteIsNotSquareTest()
{
var matrix = new Matrix(new[]
{
new Vector(new[] { Number.One, new Number(-2), new Number(3) }),
new Vector(new[] { new Number(4), Number.Zero, new Number(6) })
new Vector(new IExpression[] { Number.One, new Number(-2), new Number(3) }),
new Vector(new IExpression[] { new Number(4), Number.Zero, new Number(6) })
});

var det = new Determinant(matrix);
Expand All @@ -55,7 +84,7 @@ public void ExecuteIsNotSquareTest()
[Fact]
public void ExecuteVectorTest()
{
var vector = new Vector(new[] { Number.One, new Number(-2), new Number(3) });
var vector = new Vector(new IExpression[] { Number.One, new Number(-2), new Number(3) });
var det = new Determinant(vector);

Assert.Throws<ResultIsNotSupportedException>(() => det.Execute());
Expand All @@ -66,9 +95,9 @@ public void CloneTest()
{
var exp = new Determinant(new Matrix(new[]
{
new Vector(new[] { Number.One, new Number(-2), new Number(3) }),
new Vector(new[] { new Number(4), Number.Zero, new Number(6) }),
new Vector(new[] { new Number(-7), new Number(8), new Number(9) })
new Vector(new IExpression[] { Number.One, new Number(-2), new Number(3) }),
new Vector(new IExpression[] { new Number(4), Number.Zero, new Number(6) }),
new Vector(new IExpression[] { new Number(-7), new Number(8), new Number(9) })
}));
var clone = exp.Clone();

Expand Down
213 changes: 213 additions & 0 deletions xFunc.Tests/Expressions/NumberValueTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
// Copyright 2012-2020 Dmytro Kyshchenko
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
// express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using xFunc.Maths.Expressions;
using Xunit;

namespace xFunc.Tests.Expressions
{
public class NumberValueTest
{
[Fact]
public void EqualObjectTest()
{
var x = new NumberValue(1);
var y = (object)new NumberValue(1.0);

Assert.True(x.Equals(y));
}

[Fact]
public void NotEqualObjectTest()
{
var x = new NumberValue(1);
var y = new object();

Assert.False(x.Equals(y));
}

[Fact]
public void EqualNumberTest()
{
var x = new NumberValue(1);
var y = new NumberValue(1);

Assert.True(x == y);
}

[Fact]
public void NotEqualNumberTest()
{
var x = new NumberValue(1);
var y = new NumberValue(2);

Assert.True(x != y);
}


[Fact]
public void EqualDoubleTest()
{
var x = new NumberValue(1);
var y = 1.0;

Assert.True(x == y);
Assert.True(y == x);
}

[Fact]
public void NotEqualDoubleTest()
{
var x = new NumberValue(1);
var y = 2.0;

Assert.True(x != y);
Assert.True(y != x);
}

[Fact]
public void NumberLessNumberTest()
{
var x = new NumberValue(1);
var y = new NumberValue(2);

Assert.True(x < y);
Assert.True(x <= y);
}

[Fact]
public void NumberLessDoubleTest()
{
var x = new NumberValue(1);
var y = 2.0;

Assert.True(x < y);
Assert.True(x <= y);
}

[Fact]
public void DoubleLessNumberTest()
{
var x = 1.0;
var y = new NumberValue(2.0);

Assert.True(x < y);
Assert.True(x <= y);
}

[Fact]
public void NumberGreaterNumberTest()
{
var x = new NumberValue(1);
var y = new NumberValue(2);

Assert.True(y > x);
Assert.True(y >= x);
}

[Fact]
public void NumberGreaterDoubleTest()
{
var x = new NumberValue(1);
var y = 2.0;

Assert.True(y > x);
Assert.True(y >= x);
}

[Fact]
public void DoubleGreaterNumberTest()
{
var x = 1.0;
var y = new NumberValue(2);

Assert.True(y > x);
Assert.True(y >= x);
}

// ....

[Fact]
public void NumberLessOrEqualNumberTest()
{
var x = new NumberValue(1);
var y = new NumberValue(1);

Assert.True(x <= y);
}

[Fact]
public void NumberLessOrEqualDoubleTest()
{
var x = new NumberValue(1);
var y = 1.0;

Assert.True(x <= y);
}

[Fact]
public void DoubleLessOrEqualNumberTest()
{
var x = 1.0;
var y = new NumberValue(1.0);

Assert.True(x <= y);
}

[Fact]
public void NumberGreaterOrEqualNumberTest()
{
var x = new NumberValue(1);
var y = new NumberValue(1);

Assert.True(y >= x);
}

[Fact]
public void NumberGreaterOrEqualDoubleTest()
{
var x = new NumberValue(1);
var y = 1.0;

Assert.True(y >= x);
}

[Fact]
public void DoubleGreaterOrEqualNumberTest()
{
var x = 1.0;
var y = new NumberValue(1);

Assert.True(y >= x);
}

[Fact]
public void CompareNullTest()
{
var x = new NumberValue(1);

Assert.Equal(1, x.CompareTo(null));
}

[Fact]
public void RoundTest()
{
var x = new NumberValue(1.5);
var expected = new NumberValue(2.0);

Assert.Equal(expected, NumberValue.Round(x));
}
}
}

0 comments on commit a967bd3

Please sign in to comment.