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();
    }