def METHOD_NAME():
    class METHOD_NAME(m.Circuit):
        contents = (
            m.Array[2, m.Bits[2]]([m.Bits[2](3), m.Bits[2](0x1)]),
            m.Array[2, m.Bits[2]]([m.Bits[2](0), m.Bits[2](0x2)])
        )
        io = m.IO(I=m.In(m.Bits[1]), O=m.Out(m.Array[2, m.Bits[2]]))
        io.O @= LUT(m.Array[2, m.Bits[2]], contents)()(io.I)
    m.compile("build/test_lut_nested_array", METHOD_NAME)
    assert check_files_equal(__file__, f"build/test_lut_nested_array.v",
                             f"gold/test_lut_nested_array.v")
    tester = fault.Tester(METHOD_NAME)
    for i in range(0, 2):
        tester.circuit.I = i
        tester.eval()
        for j in range(2):
            tester.circuit.O[j].expect(int(METHOD_NAME.contents[i][j]))
    tester.compile_and_run("verilator", skip_compile=True,
                           flags=["-Wno-unused"],
                           directory=os.path.join(os.path.dirname(__file__),
                                                  "build"))