def test_markov_chain_sample(transition, initial, n):
    instance = MarkovChain(transition, initial)
    s = instance.sample(n)
    assert len(s) == n
    states = list(range(len(instance.initial)))
    for state in s:
        assert state in states
Beispiel #2
0
    def __init__(self, sample_size=255):
        self.sample_size = sample_size

        self.pregen_frame = pandas.DataFrame(
            data={"MarkovChain": MarkovChain().sample(sample_size)}
        )
        self.current = 0

        self.model = DataModel(
            data=self.pregen_frame[: self.current], name="Markov Chain", debug=False
        )
Beispiel #3
0
 def __call__(self):
     self.current += 1
     if self.current < len(self.pregen_frame):
         # simulate dynamic process by making more precomputed data appear...
         self.model(new_data=self.pregen_frame[: self.current])
     else:
         # resetting data
         self.pregen_frame = pandas.DataFrame(
             data={"MarkovChain": MarkovChain().sample(self.sample_size)}
         )
         self.current = 0
         self.model(new_data=self.pregen_frame[: self.current])
def test_markov_chain_str_repr(transition, initial):
    instance = MarkovChain(transition, initial)
    assert isinstance(repr(instance), str)
    assert isinstance(str(instance), str)
def test_markov_chain_probability(transition, initial):
    with pytest.raises(ValueError):
        instance = MarkovChain(transition, initial)