Beispiel #1
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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")]);
        }
Beispiel #8
0
        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));
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
 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;
 }
Beispiel #11
0
 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()));
     }
 }