mirror of
https://github.com/AssetRipper/MeshSharp.git
synced 2026-11-13 20:05:49 -10:00
66 lines
1.4 KiB
C#
66 lines
1.4 KiB
C#
using System;
|
|
using Xunit;
|
|
using Xunit.Abstractions;
|
|
|
|
namespace AssetRipper.MeshSharp.Tests
|
|
{
|
|
public abstract class VectorTests<T>
|
|
where T : IVector<T>, new()
|
|
{
|
|
public VectorTestCaseFactory Factory { get; set; }
|
|
|
|
protected readonly ITestOutputHelper output;
|
|
|
|
public VectorTests(ITestOutputHelper output)
|
|
{
|
|
Random random = new Random();
|
|
Factory = new VectorTestCaseFactory(random.Next());
|
|
|
|
this.output = output;
|
|
}
|
|
|
|
[Fact]
|
|
public void AdditionTest()
|
|
{
|
|
var test = Factory.CreateOperationCase<T>((o, x) => o + x);
|
|
writeTest(test);
|
|
|
|
Assert.Equal(test.Item3, test.Item1.Add(test.Item2));
|
|
}
|
|
|
|
[Fact]
|
|
public void SubsctractTest()
|
|
{
|
|
var test = Factory.CreateOperationCase<T>((o, x) => o - x);
|
|
writeTest(test);
|
|
|
|
Assert.Equal(test.Item3, test.Item1.Substract(test.Item2));
|
|
}
|
|
|
|
[Fact]
|
|
public void MultiplyTest()
|
|
{
|
|
var test = Factory.CreateOperationCase<T>((o, x) => o * x);
|
|
writeTest(test);
|
|
|
|
Assert.Equal(test.Item3, test.Item1.Multiply(test.Item2));
|
|
}
|
|
|
|
[Fact]
|
|
public void DivideTest()
|
|
{
|
|
(T, T, T) test = Factory.CreateOperationCase<T>((o, x) => o / x);
|
|
writeTest(test);
|
|
|
|
Assert.Equal(test.Item3, test.Item1.Divide(test.Item2));
|
|
}
|
|
|
|
protected void writeTest((T, T, T) test)
|
|
{
|
|
output.WriteLine($"Item 1 : {test.Item1}");
|
|
output.WriteLine($"Item 2 : {test.Item2}");
|
|
output.WriteLine($"Result : {test.Item3}");
|
|
}
|
|
}
|
|
}
|