Made strings indexable

This commit is contained in:
2018-11-19 13:53:44 +01:00
parent b3b26964cc
commit 86447d0a36
4 changed files with 72 additions and 11 deletions

View File

@@ -0,0 +1,51 @@
using Upsilon.Evaluator;
using Xunit;
namespace UpsilonTests
{
public class StringTests
{
[Fact]
public void BasicStringVariable()
{
const string input = @"
string = ""test""
return string
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var evaluated = script.Evaluate<string>();
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal("test", evaluated);
}
[Fact]
public void StringIndexable()
{
const string input = @"
string = ""test""
return string[3]
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var evaluated = script.Evaluate<string>();
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal("s", evaluated);
}
[Fact]
public void StringAddition()
{
const string input = @"
string = ""test"" + ""123""
return string
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var evaluated = script.Evaluate<string>();
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal("test123", evaluated);
}
}
}