Ejemplo n.º 1
0
def test_sample_iter():

    X = Normal('X', 0, 1)
    Y = DiscreteUniform('Y', [1, 2, 7])
    Z = Poisson('Z', 2)

    scipy = import_module('scipy')
    if not scipy:
        skip('Scipy is not installed. Abort tests')
    expr = X**2 + 3
    iterator = sample_iter(expr)

    expr2 = Y**2 + 5 * Y + 4
    iterator2 = sample_iter(expr2)

    expr3 = Z**3 + 4
    iterator3 = sample_iter(expr3)

    def is_iterator(obj):
        if (hasattr(obj, '__iter__')
                and (hasattr(obj, 'next') or hasattr(obj, '__next__'))
                and callable(obj.__iter__) and obj.__iter__() is obj):
            return True
        else:
            return False

    assert is_iterator(iterator)
    assert is_iterator(iterator2)
    assert is_iterator(iterator3)
Ejemplo n.º 2
0
def test_sample_iter():

    X = Normal("X", 0, 1)
    Y = DiscreteUniform("Y", [1, 2, 7])
    Z = Poisson("Z", 2)

    expr = X ** 2 + 3
    iterator = sample_iter(expr)

    expr2 = Y ** 2 + 5 * Y + 4
    iterator2 = sample_iter(expr2)

    expr3 = Z ** 3 + 4
    iterator3 = sample_iter(expr3)

    def is_iterator(obj):
        if (
            hasattr(obj, "__iter__")
            and (hasattr(obj, "next") or hasattr(obj, "__next__"))
            and callable(obj.__iter__)
            and obj.__iter__() is obj
        ):
            return True
        else:
            return False

    assert is_iterator(iterator)
    assert is_iterator(iterator2)
    assert is_iterator(iterator3)
Ejemplo n.º 3
0
def test_sample_iter():

    X = Normal('X', 0, 1)
    Y = DiscreteUniform('Y', [1, 2, 7])
    Z = Poisson('Z', 2)

    expr = X**2 + 3
    iterator = sample_iter(expr)

    expr2 = Y**2 + 5 * Y + 4
    iterator2 = sample_iter(expr2)

    expr3 = Z**3 + 4
    iterator3 = sample_iter(expr3)

    def is_iterator(obj):
        if (hasattr(obj, '__iter__')
                and (hasattr(obj, 'next') or hasattr(obj, '__next__'))
                and callable(obj.__iter__) and obj.__iter__() is obj):
            return True
        else:
            return False

    assert is_iterator(iterator)
    assert is_iterator(iterator2)
    assert is_iterator(iterator3)
Ejemplo n.º 4
0
    def sample(self):
        """
        Returns
        =======

        sample: iterator object
            iterator object containing the sample

        """
        if not isinstance(self.transition_probabilities, (Matrix, ImmutableMatrix)):
            raise ValueError("Transition Matrix must be provided for sampling")
        Tlist = self.transition_probabilities.tolist()
        samps = [random.choice(list(self.state_space))]
        yield samps[0]
        time = 1
        densities = {}
        for state in self.state_space:
            states = list(self.state_space)
            densities[state] = {states[i]: Tlist[state][i]
                        for i in range(len(states))}
        while time < S.Infinity:
            samps.append((next(sample_iter(FiniteRV("_", densities[samps[time - 1]])))))
            yield samps[time]
            time += 1