public void OperateDoubleNestedMap()
        {
            Key key = new Key(args.ns, args.set, "opmkey19");

            client.Delete(null, key);

            IDictionary <Value, Value> m11 = new Dictionary <Value, Value>();

            m11[Value.Get("key111")] = Value.Get(1);

            IDictionary <Value, Value> m12 = new Dictionary <Value, Value>();

            m12[Value.Get("key121")] = Value.Get(5);

            IDictionary <Value, Value> m1 = new Dictionary <Value, Value>();

            m1[Value.Get("key11")] = Value.Get(m11);
            m1[Value.Get("key12")] = Value.Get(m12);

            IDictionary <Value, Value> m21 = new Dictionary <Value, Value>();

            m21[Value.Get("key211")] = Value.Get(7);

            IDictionary <Value, Value> m2 = new Dictionary <Value, Value>();

            m2[Value.Get("key21")] = Value.Get(m21);

            Dictionary <Value, Value> inputMap = new Dictionary <Value, Value>();

            inputMap[Value.Get("key1")] = Value.Get(m1);
            inputMap[Value.Get("key2")] = Value.Get(m2);

            // Create maps.
            client.Put(null, key, new Bin(binName, inputMap));

            // Set map value to 11 for map key "key21" inside of map key "key2"
            // and retrieve all maps.
            Record record = client.Operate(null, key,
                                           MapOperation.Put(MapPolicy.Default, binName, Value.Get("key121"), Value.Get(11), CTX.MapKey(Value.Get("key1")), CTX.MapRank(-1)),
                                           Operation.Get(binName)
                                           );

            AssertRecordFound(key, record);

            IList results = record.GetList(binName);
            int   i       = 0;

            long count = (long)results[i++];

            Assert.AreEqual(1, count);

            IDictionary map = (IDictionary)results[i++];

            Assert.AreEqual(2, map.Count);

            map = (IDictionary)map["key1"];
            Assert.AreEqual(2, map.Count);

            map = (IDictionary)map["key12"];
            Assert.AreEqual(1, map.Count);

            long v = (long)map["key121"];

            Assert.AreEqual(11, v);
        }