Skip to content

Commit e6cfb3d

Browse files
authored
Creating compiled lambda expression math class for future use (#698)
1 parent 57122fa commit e6cfb3d

File tree

2 files changed

+407
-0
lines changed

2 files changed

+407
-0
lines changed
+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
using System;
2+
using Xunit;
3+
4+
namespace UnitsNet.Tests
5+
{
6+
public class CompiledLambdasTests
7+
{
8+
[Theory]
9+
[InlineData(3.0, 2.0, 6.0)]
10+
public void MultiplyReturnsExpectedValues<TLeft, TRight, TResult>(TLeft left, TRight right, TResult expected)
11+
{
12+
Assert.Equal(expected, CompiledLambdas.Multiply<TLeft, TRight, TResult>(left, right));
13+
}
14+
15+
[Theory]
16+
[InlineData(6.0, 2.0, 3.0)]
17+
public void DivideReturnsExpectedValues<TLeft, TRight, TResult>(TLeft left, TRight right, TResult expected)
18+
{
19+
Assert.Equal(expected, CompiledLambdas.Divide<TLeft, TRight, TResult>(left, right));
20+
}
21+
22+
[Theory]
23+
[InlineData(3.0, 2.0, 5.0)]
24+
public void AddReturnsExpectedValues<TLeft, TRight, TResult>(TLeft left, TRight right, TResult expected)
25+
{
26+
Assert.Equal(expected, CompiledLambdas.Add<TLeft, TRight, TResult>(left, right));
27+
}
28+
29+
[Theory]
30+
[InlineData(3.0, 2.0, 1.0)]
31+
public void SubtractReturnsExpectedValues<TLeft, TRight, TResult>(TLeft left, TRight right, TResult expected)
32+
{
33+
Assert.Equal(expected, CompiledLambdas.Subtract<TLeft, TRight, TResult>(left, right));
34+
}
35+
36+
[Theory]
37+
[InlineData(3.0, 2.0, 1.0)]
38+
public void ModuloReturnsExpectedValues<TLeft, TRight, TResult>(TLeft left, TRight right, TResult expected)
39+
{
40+
Assert.Equal(expected, CompiledLambdas.Modulo<TLeft, TRight, TResult>(left, right));
41+
}
42+
43+
[Theory]
44+
[InlineData(3.0, 3.0, true)]
45+
[InlineData(3.0, 2.0, false)]
46+
public void EqualReturnsExpectedValues<TLeft, TRight>(TLeft left, TRight right, bool expected)
47+
{
48+
Assert.Equal(expected, CompiledLambdas.Equal(left, right));
49+
}
50+
51+
[Theory]
52+
[InlineData(3.0, 3.0, false)]
53+
[InlineData(3.0, 2.0, true)]
54+
public void NotEqualReturnsExpectedValues<TLeft, TRight>(TLeft left, TRight right, bool expected)
55+
{
56+
Assert.Equal(expected, CompiledLambdas.NotEqual(left, right));
57+
}
58+
59+
[Theory]
60+
[InlineData(2.0, 3.0, true)]
61+
[InlineData(2.0, 2.0, false)]
62+
[InlineData(3.0, 2.0, false)]
63+
public void LessThanReturnsExpectedValues<TLeft, TRight>(TLeft left, TRight right, bool expected)
64+
{
65+
Assert.Equal(expected, CompiledLambdas.LessThan(left, right));
66+
}
67+
68+
[Theory]
69+
[InlineData(2.0, 3.0, true)]
70+
[InlineData(2.0, 2.0, true)]
71+
[InlineData(3.0, 2.0, false)]
72+
public void LessThanOrEqualReturnsExpectedValues<TLeft, TRight>(TLeft left, TRight right, bool expected)
73+
{
74+
Assert.Equal(expected, CompiledLambdas.LessThanOrEqual(left, right));
75+
}
76+
77+
[Theory]
78+
[InlineData(3.0, 2.0, true)]
79+
[InlineData(3.0, 3.0, false)]
80+
[InlineData(3.0, 4.0, false)]
81+
public void GreaterThanReturnsExpectedValues<TLeft, TRight>(TLeft left, TRight right, bool expected)
82+
{
83+
Assert.Equal(expected, CompiledLambdas.GreaterThan(left, right));
84+
}
85+
86+
[Theory]
87+
[InlineData(3.0, 2.0, true)]
88+
[InlineData(3.0, 3.0, true)]
89+
[InlineData(3.0, 4.0, false)]
90+
public void GreaterThanOrEqualReturnsExpectedValues<TLeft, TRight>(TLeft left, TRight right, bool expected)
91+
{
92+
Assert.Equal(expected, CompiledLambdas.GreaterThanOrEqual(left, right));
93+
}
94+
}
95+
}

0 commit comments

Comments
 (0)