1 // Compiler options: -r:Mono.CSharp.dll
7 static void Run (string id
, string stmt
)
9 if (!Evaluator
.Run (stmt
))
10 Console
.WriteLine ("Failed on test {0}", id
);
13 static void Evaluate (string id
, string expr
, object expected
)
16 object res
= Evaluator
.Evaluate (expr
);
17 if (res
== null && expected
== null)
20 if (!expected
.Equals (res
)){
21 Console
.WriteLine ("Failed on test {2} Expecting {0}, got {1}", expected
, res
, id
);
22 throw new Exception ();
25 Console
.WriteLine ("Failed on test {0}", id
);
32 Evaluator
.Init (new string [0]); //new string [] { "-v", "-v" });
34 // This fails because of the grammar issue with the pointer type
35 // Evaluate ("multiply", "1*2;", 2);
37 Run ("1", "System.Console.WriteLine (100);");
38 Run ("Length", "var a = new int [] {1,2,3}; var b = a.Length;");
40 Evaluate ("CompareString", "\"foo\" == \"bar\";", false);
41 Evaluate ("CompareInt", "var a = 1; a+2;", 3);
43 Evaluator
.Run ("using System; using System.Linq;");
44 Run ("LINQ-1", "var a = new int[]{1,2,3};\nfrom x in a select x;");
45 Run ("LINQ-2", "var a = from f in System.IO.Directory.GetFiles (\"/tmp\") where f == \"passwd\" select f;");
47 Evaluator
.ReferenceAssembly (typeof (MyTest
).Assembly
);
48 Evaluate ("assembly reference test", "typeof (MyTest) != null;", true);
50 Run ("LINQ-3", "var first_scope = new int [] {1,2,3};");
51 Run ("LINQ-4", "var second_scope = from x in first_scope select x;");
54 string [] res
= Evaluator
.GetCompletions ("ConsoleK", out prefix
);
55 if (res
[0] != "ey" || res
[1] != "eyInfo"){
56 Console
.WriteLine (res
[0]);
57 Console
.WriteLine (res
[1]);
58 throw new Exception ("Expected two completions ConsoleKey and ConsoleKeyInfo");
61 res
= Evaluator
.GetCompletions ("Converte", out prefix
);
63 throw new Exception ("Expected one completion for Converter");
66 res
= Evaluator
.GetCompletions ("Sys", out prefix
);
67 if (res
[0] != "tem"){
68 throw new Exception ("Expected at least a conversion for System");
71 res
= Evaluator
.GetCompletions ("System.Int3", out prefix
);
73 throw new Exception ("Expected completion to System.Int32");
76 res
= Evaluator
.GetCompletions ("new System.Text.StringBuilder () { Ca", out prefix
);
77 if (res
[0] != "pacity"){
78 throw new Exception ("Expected completion to Capacity");
81 res
= Evaluator
.GetCompletions ("new System.Text.StringBuilder () { ", out prefix
);
83 throw new Exception ("Epxected 4 completions (Capacity Chars Length MaxCapacity)");
86 // These should return "partial"
89 string sres
= Evaluator
.Evaluate ("1+", out eval_result
, out result_set
);
91 throw new Exception ("No result should have been set");
93 throw new Exception ("The result should have been the input string, since we have a partial input");