/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

Non-empty maps:

    Map:
    
    [
      k1 = v1
      2 = v2
      k3 = v3
      null = v4
      Y = v5
      N = null
    ]
  
    [
      k1 = v1; // @0=@0; odd=odd; Y=Y
      2 = v2; // @1=@1; even=even; Y=Y
      k3 = v3; // @2=@2; odd=odd; Y=Y
      null = v4; // @3=@3; even=even; Y=Y
      Y = v5; // @4=@4; odd=odd; Y=Y
      N = null // @5=@5; even=even; N=N
    ]
  
    {
      [
        k1 = v1; // @0=@0; odd=odd; Y=Y
        2 = v2; // @1=@1; even=even; Y=Y
        k3 = v3; // @2=@2; odd=odd; Y=Y
        null = v4; // @3=@3; even=even; Y=Y
        Y = v5; // @4=@4; odd=odd; Y=Y
        N = null // @5=@5; even=even; N=N
      ]
    }

    Map:
    
    [
      k1 = v1
      2 = v2
      k3 = v3
      null = v4
      Y = v5
      N = null
    ]
  
    [
      k1 = v1; // @0=@0; odd=odd; Y=Y
      2 = v2; // @1=@1; even=even; Y=Y
      k3 = v3; // @2=@2; odd=odd; Y=Y
      null = v4; // @3=@3; even=even; Y=Y
      Y = v5; // @4=@4; odd=odd; Y=Y
      N = null // @5=@5; even=even; N=N
    ]
  
    {
      [
        k1 = v1; // @0=@0; odd=odd; Y=Y
        2 = v2; // @1=@1; even=even; Y=Y
        k3 = v3; // @2=@2; odd=odd; Y=Y
        null = v4; // @3=@3; even=even; Y=Y
        Y = v5; // @4=@4; odd=odd; Y=Y
        N = null // @5=@5; even=even; N=N
      ]
    }

    Map:
    
    [
      k1 = v1
      2 = v2
      k3 = v3
      null = v4
      Y = v5
      N = null
    ]
  
    [
      k1 = v1; // @0=@0; odd=odd; Y=Y
      2 = v2; // @1=@1; even=even; Y=Y
      k3 = v3; // @2=@2; odd=odd; Y=Y
      null = v4; // @3=@3; even=even; Y=Y
      Y = v5; // @4=@4; odd=odd; Y=Y
      N = null // @5=@5; even=even; N=N
    ]
  
    {
      [
        k1 = v1; // @0=@0; odd=odd; Y=Y
        2 = v2; // @1=@1; even=even; Y=Y
        k3 = v3; // @2=@2; odd=odd; Y=Y
        null = v4; // @3=@3; even=even; Y=Y
        Y = v5; // @4=@4; odd=odd; Y=Y
        N = null // @5=@5; even=even; N=N
      ]
    }

    Map:
    
    [
      k1 = 11
      k2 = 22
    ]
  
    [
      k1 = 11; // @0=@0; odd=odd; Y=Y
      k2 = 22 // @1=@1; even=even; N=N
    ]
  
    {
      [
        k1 = 11; // @0=@0; odd=odd; Y=Y
        k2 = 22 // @1=@1; even=even; N=N
      ]
    }


Empty maps:

    Map:
    
    [
    ]
  
    [
      Empty
    ]
  
    {
      Empty
    }

    Map:
    
    [
    ]
  
    [
      Empty
    ]
  
    {
      Empty
    }

    Map:
    
    [
    ]
  
    [
      Empty
    ]
  
    {
      Empty
    }

    Map:
    
    [
    ]
  
    [
      Empty
    ]
  
    {
      Empty
    }


  a @ 0, 1
    aa = 11  @ 0 // inside a @ 0, 1
  a @ 0, 1
  --
  b @ 1, 2
    ba = 21  @ 0 // inside b @ 1, 2
    bb = 22  @ 1 // inside b @ 1, 2
  b @ 1, 2
  --
  c @ 2, 0
  c @ 2, 0
  --
