def entropy_single(self, src_vector, expected_entropy, window): src = blocks.vector_source_b(src_vector) v2s = blocks.vector_to_stream(gr.sizeof_char, 1) entropy = qitkat.entropy_bf(window) data = blocks.vector_sink_f() self.tb.connect(src, v2s) self.tb.connect(v2s, entropy) self.tb.connect(entropy, data) self.tb.run() obs = data.data() exp = expected_entropy for i in range(len(obs)): self.assertAlmostEqual(exp, round(obs[i], self.rounddigits), self.precision)
def entropy_joint(self, src_vector0, src_vector1, expected_entropy, window): src0 = blocks.vector_source_b(src_vector0) src1 = blocks.vector_source_b(src_vector1) v2s0 = blocks.vector_to_stream(gr.sizeof_char, 1) v2s1 = blocks.vector_to_stream(gr.sizeof_char, 1) entropy = qitkat.entropy_bf(window) data = blocks.vector_sink_f() self.tb.connect(src0, v2s0) self.tb.connect(v2s0, (entropy, 0)) self.tb.connect(src1, v2s1) self.tb.connect(v2s1, (entropy, 1)) self.tb.connect(entropy, data) self.tb.run() obs = data.data() exp = expected_entropy for i in range(len(obs)): self.assertAlmostEqual(exp,round(obs[i], self.rounddigits), self.precision)