public void SerializeAndDeserialize_CircleLinks() { SValue hash = SValue.NewHash(); hash["field0"] = SValue.NewString("value"); hash["field1"] = SValue.NewInt(10); hash["field2"] = hash; SValue list = SValue.NewList(); list.Add(SValue.NewInt(1)); list.Add(SValue.NewString("value2")); list.Add(hash); hash["field3"] = list; SValue unserialized = SValue.Unserialize(SValue.Serialize(list)); Assert.AreEqual("[1, 'value2', {'field0': 'value', 'field1': 10, 'field2': …, 'field3': …}]", unserialized.ToString()); Assert.AreEqual(unserialized[2], unserialized[2]["field2"]); Assert.AreEqual(unserialized, unserialized[2]["field3"]); Assert.AreNotEqual(unserialized, unserialized[2]["field2"]); }