Upsilon/UpsilonTests/UserDataOperatorTests.cs

63 lines
1.6 KiB
C#
Raw Normal View History

using System;
using Upsilon.BaseTypes.UserData;
using Upsilon.Evaluator;
using Xunit;
// ReSharper disable UnusedMember.Local
// ReSharper disable ClassNeverInstantiated.Global
namespace UpsilonTests
{
public class UserDataOperatorTests : IClassFixture<UserDataOperatorTests.UserDataOperatorTestsFixture>
{
public class UserDataOperatorTestsFixture : IDisposable
{
public UserDataOperatorTestsFixture()
{
UserDataTypeHandler.LoadType<UserDataHelper>();
}
public void Dispose()
{
}
}
#pragma warning disable 414, 649
private class UserDataHelper
{
public UserDataHelper(double value)
{
Value = value;
}
public double Value { get; }
public static UserDataHelper operator +(UserDataHelper a, UserDataHelper b)
{
return new UserDataHelper(a.Value + b.Value);
}
public static UserDataHelper operator +(UserDataHelper a, double b)
{
return new UserDataHelper(a.Value + b);
}
}
#pragma warning restore 414, 649
[Fact]
public void TestAddition()
{
const string input = @"
function add(o1, o2)
return o1 + o2
end
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var o1 = new UserDataHelper(100);
var o2 = new UserDataHelper(215);
var result = script.EvaluateFunction("add", new[] {o1, o2});
}
}
}