async def METHOD_NAME(ray_start_regular, storage_configs):
    start_method = "fork" if sys.platform != "win32" else None
    pool = await mo.create_actor_pool(
        "127.0.0.1",
        2,
        labels=["main", "numa-0", "io"],
        subprocess_start_method=start_method,
    )
    async with pool:
        session_id = "mock_session_id"
        storage_api = await MockStorageAPI.create(
            address=pool.external_address,
            session_id=session_id,
            storage_configs=storage_configs,
        )
        # test put and get
        value1 = np.random.rand(10, 10)
        await storage_api.put("data1", value1)
        get_value1 = await storage_api.get("data1")
        np.testing.assert_array_equal(value1, get_value1)
        value2 = pd.DataFrame(
            {
                "col1": [str(i) for i in range(10)],
                "col2": np.random.randint(0, 100, (10,)),
            }
        )
        await storage_api.put("data2", value2)
        get_value2 = await storage_api.get("data2")
        pd.testing.assert_frame_equal(value2, get_value2)
        sliced_value = await storage_api.get(
            "data2", conditions=[slice(3, 5), slice(None, None)]
        )
        pd.testing.assert_frame_equal(value2.iloc[3:5, :], sliced_value)
        infos = await storage_api.get_infos("data2")
        assert infos[0].store_size > 0
        await storage_api.delete("data2")
        buffers = await AioSerializer(value2).run()
        size = sum(getattr(buf, "nbytes", len(buf)) for buf in buffers)
        # test open_reader and open_writer
        writer = await storage_api.open_writer("write_key", size, StorageLevel.MEMORY)
        async with writer:
            for buf in buffers:
                await writer.write(buf)
        reader = await storage_api.open_reader("write_key")
        async with reader:
            read_value = await AioDeserializer(reader).run()
        pd.testing.assert_frame_equal(value2, read_value)
        await MockStorageAPI.cleanup(pool.external_address)