public static void TestOperationMultiply() { JsonArray lim = new JsonArray().Add("atk").Add("acc").Add("mag").Add("mac"); JsonObject matrix = new JsonObject() .Add("atk", new JsonObject().Add("str", 5).Add("dex", 2).Add("lck", 1)) .Add("def", new JsonObject().Add("vit", 5).Add("end", 3).Add("str", 1)) .Add("acc", new JsonObject().Add("dex", 10).Add("lck", 2).Add("agi",1)) .Add("eva", new JsonObject().Add("agi", 4).Add("lck", 4).Add("dex", 1)); JsonObject vector = new JsonObject() .Add("str", 5) .Add("dex", 5) .Add("lck", 5) .Add("agi", 5) .Add("vit", 5) .Add("end", 5); JsonObject result = vector.Multiply(matrix); JsonObject limResult = vector.Multiply(matrix, lim); result.Get<float>("atk").ShouldBe(40); result.Get<float>("def").ShouldBe(45); result.Get<float>("acc").ShouldBe(65); result.Get<float>("eva").ShouldBe(45); limResult.Get<float>("atk").ShouldBe(40); limResult.Get<float>("acc").ShouldBe(65); limResult.ContainsKey("def").ShouldBeFalse(); limResult.ContainsKey("eva").ShouldBeFalse(); }