def METHOD_NAME(self, N, M):
    inputs = []
    expected = []
    for n in range(N):
        inputs.append([float(i) for i in range(n*M, (n+1)*M)])
    for m in range(M):
        expected.append(range(m, N*M, M))
    gens = [VectorInput(input) for input in inputs]
    mux = Multiplexer(numberRealInputs=N)
    ports = []
    for i in range(N):
        ports.append(getattr(mux, "real_" + str(i)))
        gens[i].data >> ports[i]
    pool = Pool()
    mux.data >> (pool, "real")
    for gen in gens: run(gen)
    if not N or not M:
        self.assertEqual(pool.descriptorNames(), [])
        return
    self.assertEqualMatrix(pool['real'], expected)