public void PrintlnTest() { var g = new Global(); var data = new object[] { 1, 1M, 10.55, "string" }; foreach (var obj in data) { using var iop = new IoProxy(); g.println(obj); Assert.Equal(obj + Environment.NewLine, iop.ReadAllFromStdOut()); } { using var iop = new IoProxy(); var tuple = (1, 2, 3, "xxx"); g.println(tuple); Assert.Equal(string.Join(" ", tuple) + Environment.NewLine, iop.ReadAllFromStdOut()); } { using var iop = new IoProxy(); var tuple = (1, 2, 3, "xxx"); g.Env.Add("OFS", ":"); g.println(tuple); Assert.Equal(string.Join(":", tuple) + Environment.NewLine, iop.ReadAllFromStdOut()); } }
public void StringPrintTest() { var g = new Global(); using var iop = new IoProxy(); g.print("abc"); Assert.Equal("abc", iop.ReadAllFromStdOut()); }
public void PrintCollectionTest() { var gv = new Global(); var data = new[] { "a", "b", "c" }; var expect = string.Join(Environment.NewLine, data) + Environment.NewLine; using var iop = new IoProxy(); gv.print(data); Assert.Equal(expect, iop.ReadAllFromStdOut()); }
public void PrintTest() { var gv = new Global(); var data = new object[] { 1, 1M, 10.55 }; foreach (var obj in data) { using var iop = new IoProxy(); gv.print(obj); Assert.Equal(obj.ToString(), iop.ReadAllFromStdOut()); } }
public void TuplePrintTest() { var gv = new Global(); var data = (1, 3, "xx"); var expect = string.Join(" ", data); { using var iop = new IoProxy(); gv.print(data); Assert.Equal(expect, iop.ReadAllFromStdOut()); } { using var iop = new IoProxy(); gv.Env.Add("OFS", ":"); gv.print(data); expect = string.Join(":", data); Assert.Equal(expect, iop.ReadAllFromStdOut()); } }
public async Task ReaderTest() { var sb = new ScriptBuilder(); sb.AddCodeBlock("println(F0)"); sb.AddCodeBlock("println(F[1])"); sb.AddCodeBlock("println(F[2])"); var(script, _) = sb.Build(CancellationToken.None); using var iop = new IoProxy(); await script.RunAsync(new Global { Reader = new StringReader(string.Join(Environment.NewLine, new[] { "1 a", "a 1", "2 b", "b 2", "3 c", "c 3" })), Separator = new Regex(@"\s") }); var expects = new[] { "1 a", "1", "a", "a 1", "a", "1", "2 b", "2", "b", "b 2", "b", "2", "3 c", "3", "c", "c 3", "c", "3" }; foreach (var(expect, actual) in expects.Zip(iop.ReadLineFromStdOut())) { Assert.Equal(expect, actual); } }