public void TestNewGenericWithArrayType() { CSNode root = ParseScript("CSScript.Test.GenericOne<int[]> a = new CSScript.Test.GenericOne<int[]>(new int[] {1,2,3});"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(CSScript.Test.GenericOne <int[]>), obj.Type); }
public void TestTypeDictionaryAraray() { CSNode root = ParseScript("System.Collections.Generic.Dictionary<string, int>[] a = new System.Collections.Generic.Dictionary<string, int>[3];"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(System.Collections.Generic.Dictionary <string, int>[]), obj.Type); Assert.AreEqual(3, obj.GetAs <System.Collections.Generic.Dictionary <string, int>[]> ().Length); }
public void TestNewInnerClass() { CSNode root = ParseScript("CSScript.Test.Simple.Inner a = new CSScript.Test.Simple.Inner (33);"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(CSScript.Test.Simple.Inner), obj.Type); Assert.AreEqual(33, obj.GetAs <CSScript.Test.Simple.Inner> ()._a); }
public void AssignImmedidate() { CSNode root = ParseScript("var 4 = 3;"); root.Evaluate(); LogAssert.Expect(LogType.Error, "[CSScript line: 1 col: 4] missing NAME at '4'"); LogAssert.Expect(LogType.Error, "[CSScript line: 1 col: 4] cannot assign to IMMEDIATE"); }
public void AssignInt() { CSNode root = ParseScript("var myVar = 3;"); CSObject obj = root.Evaluate(); Assert.AreEqual("myVar", obj.Name); Assert.AreEqual(3, obj.Value); }
public void TestLocalVariable2() { CSNode root = ParseScript("CSScript.Test.Simple s = new CSScript.Test.Simple(33); int b = s._a;"); CSObject obj = root.Evaluate(); Assert.AreEqual("b", obj.Name); Assert.AreEqual(33, obj.GetAs <int> ()); }
public void TestLocalVariable() { CSNode root = ParseScript("int a = 33; int b = a;"); CSObject obj = root.Evaluate(); Assert.AreEqual("b", obj.Name); Assert.AreEqual(33, obj.GetAs <int> ()); }
public void TestStaticProperty() { CSNode root = ParseScript("CSScript.Test.Simple.Hoge = \"HelloWorld\"; CSScript.Test.Simple.Hoge;"); CSObject obj = root.Evaluate(); Assert.AreEqual("Hoge", obj.Name); Assert.AreEqual("HelloWorld", obj.GetAs <string> ()); }
public void TestTypeIntArray() { CSNode root = ParseScript("int[] a = new int[3];"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(int[]), obj.Type); Assert.AreEqual(3, obj.GetAs <int[]> ().Length); }
public void TestStaticVariable() { CSNode root = ParseScript("CSScript.Test.Simple.HELLO = \"HelloWorld\"; CSScript.Test.Simple.HELLO;"); CSObject obj = root.Evaluate(); Assert.AreEqual("HELLO", obj.Name); Assert.AreEqual("HelloWorld", obj.GetAs <string> ()); }
public void TypedVarSimple() { CSNode root = ParseScript("CSScript.Test.Simple a = new CSScript.Test.Simple(3);"); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(typeof(Simple), obj.Type); Assert.AreEqual(3, obj.GetAs <Simple> ()._a); }
public void TypedVarInt() { CSNode root = ParseScript("int a = 3;"); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(typeof(int), obj.Type); Assert.AreEqual(3, obj.Value); }
public void Declaration() { CSNode root = ParseScript("var myVar;"); CSObject obj = root.Evaluate(); Assert.AreEqual("myVar", obj.Name); Assert.AreEqual(null, obj.Value); }
public void TestMethodIntWrongCall () { CSNode root = ParseScript ( "int a = CSScript.Test.Simple.GetInt();" ); Assert.Throws<System.MissingMethodException> (() => { CSObject obj = root.Evaluate (); }, "static method: GetInt cannot be found in CSScript.Test.Simple"); }
public void TestNewInnerGenericClass() { CSNode root = ParseScript("CSScript.Test.GenericOne<int>.Inner<float, string> a = new CSScript.Test.GenericOne<int>.Inner<float, string>(3.3f, \"hoge\");"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(CSScript.Test.GenericOne <int> .Inner <float, string>), obj.Type); Assert.AreEqual(3.3f, obj.GetAs <CSScript.Test.GenericOne <int> .Inner <float, string> > ()._a); Assert.AreEqual("hoge", obj.GetAs <CSScript.Test.GenericOne <int> .Inner <float, string> > ()._b); }
public void NewSimpleClass() { CSNode root = ParseScript("var a = new CSScript.Test.Simple();"); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(typeof(CSScript.Test.Simple), obj.Value.GetType()); }
public void NewArrayList() { CSNode root = ParseScript("var a = new System.Collections.Generic.List<int>[2];"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(List <int>[]), obj.Type); List <int>[] arr = obj.GetAs <List <int>[]> (); Assert.AreEqual(2, arr.Length); }
public void NewArrayInt() { CSNode root = ParseScript("var a = new int[32];"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(int[]), obj.Type); int[] arr = obj.GetAs <int[]> (); Assert.AreEqual(32, arr.Length); }
public void TestStaticMethod () { CSNode root = ParseScript ( "string a = CSScript.Test.Simple.StaticMethod(\"moge\");" ); CSObject obj = root.Evaluate (); Assert.AreEqual ("a", obj.Name); Assert.AreEqual ("moge", obj.GetAs<string> ()); }
public void TestStaticVariable2() { CSNode root = ParseScript( "CSScript.Test.GenericOne<int>._s = new CSScript.Test.Simple (34);" + "int a = CSScript.Test.GenericOne<int>._s._a;"); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(34, obj.GetAs <int> ()); }
public void TestMethodInt () { CSNode root = ParseScript ( "CSScript.Test.Simple s = new CSScript.Test.Simple(55);\n" + "int a = s.GetInt();" ); CSObject obj = root.Evaluate (); Assert.AreEqual ("a", obj.Name); Assert.AreEqual (55, obj.GetAs<int> ()); }
public void TestLocalVariable3() { CSNode root = ParseScript( "CSScript.Test.Simple s = new CSScript.Test.Simple(33);\n" + "CSScript.Test.GenericOne<CSScript.Test.Simple> g = new CSScript.Test.GenericOne<CSScript.Test.Simple>(s);\n" + "int b = g._pa._a;"); CSObject obj = root.Evaluate(); Assert.AreEqual("b", obj.Name); Assert.AreEqual(33, obj.GetAs <int> ()); }
public void NewSimpleClassArgsRef() { CSNode root = ParseScript("var a = new CSScript.Test.Simple(new CSScript.Test.Simple());"); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(typeof(CSScript.Test.Simple), obj.Value.GetType()); CSScript.Test.Simple s = obj.Value as CSScript.Test.Simple; Assert.AreNotEqual(null, s._i); }
public void NewSimpleClassArgsString() { CSNode root = ParseScript("var a = new CSScript.Test.Simple(\"hello\");"); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(typeof(CSScript.Test.Simple), obj.Value.GetType()); CSScript.Test.Simple s = obj.Value as CSScript.Test.Simple; Assert.AreEqual("hello", s._s); }
public void TestListInt() { CSNode root = ParseScript( "System.Collections.Generic.List<int> aa = new System.Collections.Generic.List<int>(){1,2,3,4};" + "int a = aa[2];" ); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(3, obj.GetAs <int> ()); }
public void NewInitializerClassArray() { CSNode root = ParseScript("var a = new CSScript.Test.Simple[]{new CSScript.Test.Simple(1), new CSScript.Test.Simple(2)};"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(Simple[]), obj.Type); Simple[] arr = obj.GetAs <Simple[]> (); Assert.AreEqual(2, arr.Length); Assert.AreEqual(1, arr[0]._a); Assert.AreEqual(2, arr[1]._a); }
public void TypedVarDictionary() { CSNode root = ParseScript("System.Collections.Generic.Dictionary<string,int> a \n" + "= new System.Collections.Generic.Dictionary<string,int>(){\n" + "{\"hoge\", 3}\n" + "};" ); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(typeof(System.Collections.Generic.Dictionary <string, int>), obj.Type); Assert.AreEqual(3, obj.GetAs <System.Collections.Generic.Dictionary <string, int> > () ["hoge"]); }
public void TestDictionaryAssign() { CSNode root = ParseScript( "System.Collections.Generic.Dictionary<string, CSScript.Test.Simple> aa = new System.Collections.Generic.Dictionary<string, CSScript.Test.Simple> ();" + "aa[\"moge\"] = new CSScript.Test.Simple(55);" + "int a = aa[\"moge\"]._a;\n" ); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(55, obj.GetAs <int> ()); }
public void NewInitializerIntArray() { CSNode root = ParseScript("var a = new int[]{1,2,3};"); CSObject obj = root.Evaluate(); Assert.AreEqual(typeof(int[]), obj.Type); int[] arr = obj.GetAs <int[]> (); Assert.AreEqual(3, arr.Length); Assert.AreEqual(1, arr[0]); Assert.AreEqual(2, arr[1]); Assert.AreEqual(3, arr[2]); }
public void NewSimpleClassArgs2() { CSNode root = ParseScript("var a = new CSScript.Test.Simple(3, 5.2f);"); CSObject obj = root.Evaluate(); Assert.AreEqual("a", obj.Name); Assert.AreEqual(typeof(CSScript.Test.Simple), obj.Value.GetType()); CSScript.Test.Simple s = obj.Value as CSScript.Test.Simple; Assert.AreEqual(3, s._a); Assert.AreEqual(5.2f, s._b); Assert.AreEqual(typeof(float), s._b.GetType()); }