def METHOD_NAME(self):
    data = np.asarray(np.random.random((2, 3)), dtype=config.floatX)
    n = matrix()
    for axis in [0, 1, -1]:
        f = function([n], at_max(n, axis), mode=self.mode)
        topo = f.maker.fgraph.toposort()
        assert len(topo) == 1
        assert isinstance(topo[0].op, CAReduce)
        f(data)
        f = function([n], at_max(-n, axis), mode=self.mode)
        topo = f.maker.fgraph.toposort()
        assert len(topo) == 2
        assert isinstance(topo[0].op, Elemwise)
        assert isinstance(topo[0].op.scalar_op, aes.Neg)
        assert isinstance(topo[1].op, CAReduce)
        f(data)
        f = function([n], -at_max(n, axis), mode=self.mode)
        topo = f.maker.fgraph.toposort()
        assert len(topo) == 2
        assert isinstance(topo[0].op, CAReduce)
        assert isinstance(topo[1].op, Elemwise)
        assert isinstance(topo[1].op.scalar_op, aes.Neg)
        f(data)
        f = function([n], -at_max(-n, axis), mode=self.mode)
        topo = f.maker.fgraph.toposort()
        assert len(topo) == 1
        assert isinstance(topo[0].op, CAReduce)  # min
        f(data)