def test_updates_add(self):

        up1 = OrderedUpdates()
        up2 = OrderedUpdates()

        a = theano.shared('a')
        b = theano.shared('b')

        assert not up1 + up2

        up1[a] = 5

        # test that addition works
        assert up1
        assert up1 + up2
        assert not up2

        assert len(up1 + up2) == 1
        assert (up1 + up2)[a] == 5

        up2[b] = 7
        assert up1
        assert up1 + up2
        assert up2

        assert len(up1 + up2) == 2
        assert (up1 + up2)[a] == 5
        assert (up1 + up2)[b] == 7

        assert a in (up1 + up2)
        assert b in (up1 + up2)

        # this works even though there is a collision
        # because values all match
        assert len(up1 + up1 + up1) == 1

        up2[a] = 8  # a gets different value in up1 and up2
        try:
            up1 + up2
            assert 0
        except __HOLE__:
            pass

        # reassigning to a key works fine right?
        up2[a] = 10
dataset/ETHPy150Open rizar/attention-lvcsr/libs/Theano/theano/tests/test_updates.py/test_ifelse.test_updates_add