Handle Unary operator overloading for UserData
This commit is contained in:
@@ -46,6 +46,11 @@ namespace UpsilonTests
|
||||
return new UserDataHelper(a.Value - b.Value);
|
||||
}
|
||||
|
||||
public static UserDataHelper operator -(UserDataHelper a)
|
||||
{
|
||||
return new UserDataHelper(-a.Value);
|
||||
}
|
||||
|
||||
public static UserDataHelper operator *(UserDataHelper a, UserDataHelper b)
|
||||
{
|
||||
return new UserDataHelper(a.Value * b.Value);
|
||||
@@ -145,5 +150,21 @@ end
|
||||
Assert.Equal(10, result.Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestNegation()
|
||||
{
|
||||
const string input = @"
|
||||
function negate(o1)
|
||||
return -o1
|
||||
end
|
||||
";
|
||||
var script = new Script(input);
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
var o1 = new UserDataHelper(100);
|
||||
var result = script.EvaluateFunction<UserDataHelper>("negate", new object[] {o1});
|
||||
Assert.Empty(script.Diagnostics.Messages);
|
||||
Assert.Equal(-100, result.Value);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user