public void CanGetIndex() { var list = new ListValue(); var zedObject = ScalarIntValue.Zero; InvokeDelegate(list, "ADD", zedObject); var firstObject = ScalarIntValue.One; InvokeDelegate(list, "ADD", firstObject); var secondObject = ScalarIntValue.Two; InvokeDelegate(list, "ADD", secondObject); var thirdObject = new ScalarIntValue(4); InvokeDelegate(list, "ADD", thirdObject); var length = InvokeDelegate(list, "LENGTH"); Assert.AreEqual(new ScalarIntValue(4),length); Assert.AreSame(zedObject, list[0]); Assert.AreSame(firstObject, list[1]); Assert.AreSame(secondObject, list[2]); Assert.AreSame(thirdObject, list[3]); Assert.AreNotSame(list[0], list[1]); Assert.AreNotSame(list[0], list[2]); Assert.AreNotSame(list[0], list[3]); Assert.AreNotSame(list[1], list[2]); Assert.AreNotSame(list[1], list[3]); Assert.AreNotSame(list[2], list[3]); }
// Required for all IDumpers for them to work, but can't enforced by the interface because it's static: public static ScalarIntValue CreateFromDump(SafeSharedObjects shared, Dump d) { var newObj = new ScalarIntValue(); newObj.LoadDump(d); return(newObj); }
public static bool TryParseInt(string str, out ScalarValue result) { result = null; // default the out value to null int val; if (int.TryParse(str, out val)) { result = new ScalarIntValue(val); return(true); } return(false); }
public static bool TryParseInt(string str, out ScalarValue result) { result = null; // default the out value to null int val; str = str.Replace("_", ""); if (int.TryParse(str, NumberStyles.Integer, CultureInfo.InvariantCulture, out val)) { result = new ScalarIntValue(val); return(true); } return(false); }
public void CanSerializeLexicons() { var lex = new Lexicon(); var nested = new Lexicon(); lex[new StringValue("key1")] = new StringValue("value1"); lex[new StringValue("2")] = new ScalarIntValue(10); lex[new ScalarIntValue(2)] = new ScalarIntValue(11); // make sure int 2 is different than string "2" lex[new StringValue("key3")] = nested; nested[new StringValue("nested1")] = new StringValue("nested1value"); nested[new StringValue("nested2")] = new StringValue("nested2value"); var lines = new string[] { "LEXICON of 4 items:", "[\"key1\"] = \"value1\"", "[\"2\"] = 10", "[2] = 11", "[\"key3\"] = LEXICON of 2 items:", " [\"nested1\"] = \"nested1value\"", " [\"nested2\"] = \"nested2value\""}; Assert.AreEqual(string.Join(Environment.NewLine, lines), Serialize(lex)); }
public void CanTestContains() { var stack = new StackValue(); var zedObject = new StringValue("abc"); InvokeDelegate(stack, "PUSH", zedObject); var firstObject = ScalarIntValue.One; InvokeDelegate(stack, "PUSH", firstObject); var secondObject = ScalarIntValue.Two; var thirdObject = new ScalarIntValue(4); var length = InvokeDelegate(stack, "LENGTH"); Assert.AreEqual(ScalarIntValue.Two, length); Assert.IsTrue((BooleanValue)InvokeDelegate(stack, "CONTAINS", zedObject)); Assert.IsTrue((BooleanValue)InvokeDelegate(stack, "CONTAINS", firstObject)); Assert.IsFalse((BooleanValue)InvokeDelegate(stack, "CONTAINS", secondObject)); Assert.IsFalse((BooleanValue)InvokeDelegate(stack, "CONTAINS", thirdObject)); }
public void CanSerializeLexicons() { var lex = new Lexicon(); var nested = new Lexicon(); lex[new StringValue("key1")] = new StringValue("value1"); lex[new StringValue("key2")] = new ScalarIntValue(1); lex[new StringValue("key3")] = nested; nested[new StringValue("nested1")] = new StringValue("nested1value"); nested[new StringValue("nested2")] = new StringValue("nested2value"); Lexicon deserialized = Deserialize(Serialize(lex)) as Lexicon; Assert.AreEqual(new StringValue("value1"), deserialized[new StringValue("key1")]); Assert.AreEqual(new ScalarIntValue(1), deserialized[new StringValue("key2")]); Assert.IsTrue(deserialized[new StringValue("key3")] is Lexicon); Assert.AreEqual(new StringValue("nested1value"), (deserialized[new StringValue("key3")] as Lexicon)[new StringValue("nested1")]); }
public void CanTestContains() { var list = new ListValue(); var zedObject = ScalarIntValue.Zero; InvokeDelegate(list, "ADD", zedObject); var firstObject = ScalarIntValue.One; InvokeDelegate(list, "ADD", firstObject); var secondObject = ScalarIntValue.Two; var thirdObject = new ScalarIntValue(4); var length = InvokeDelegate(list, "LENGTH"); Assert.AreEqual(ScalarIntValue.Two, length); Assert.IsTrue((BooleanValue)InvokeDelegate(list, "CONTAINS", zedObject)); Assert.IsTrue((BooleanValue)InvokeDelegate(list, "CONTAINS", firstObject)); Assert.IsFalse((BooleanValue)InvokeDelegate(list, "CONTAINS", secondObject)); Assert.IsFalse((BooleanValue)InvokeDelegate(list, "CONTAINS", thirdObject)); }
public void CopyIsACopy() { var list = new ListValue(); var zedObject = ScalarIntValue.Zero; InvokeDelegate(list, "ADD", zedObject); var firstObject = ScalarIntValue.One; InvokeDelegate(list, "ADD", firstObject); var secondObject = ScalarIntValue.Two; InvokeDelegate(list, "ADD", secondObject); var thirdObject = new ScalarIntValue(4); InvokeDelegate(list, "ADD", thirdObject); var length = InvokeDelegate(list, "LENGTH"); Assert.AreEqual(new ScalarIntValue(4), length); var copy = InvokeDelegate(list, "COPY") as ListValue; Assert.AreNotSame(list, copy); var copyLength = InvokeDelegate(copy, "LENGTH"); Assert.AreEqual(new ScalarIntValue(4), copyLength); InvokeDelegate(copy, "CLEAR"); copyLength = InvokeDelegate(copy, "LENGTH"); Assert.AreEqual(ScalarIntValue.Zero, copyLength); length = InvokeDelegate(list, "LENGTH"); Assert.AreEqual(new ScalarIntValue(4), length); }
public static bool TryParseInt(string str, out ScalarValue result) { result = null; // default the out value to null int val; if (int.TryParse(str, out val)) { result = new ScalarIntValue(val); return true; } return false; }
public void SetWarp(ScalarIntValue newIndex) { int newRate = newIndex; switch (TimeWarp.WarpMode) { case TimeWarp.Modes.HIGH: SetWarpRate(newRate, TimeWarp.fetch.warpRates.Length - 1); break; case TimeWarp.Modes.LOW: SetWarpRate(newRate, TimeWarp.fetch.physicsWarpRates.Length - 1); break; default: throw new Exception(string.Format("WARP MODE {0} unknown to kOS - did KSP's API change?", TimeWarp.WarpMode.ToString())); } }