def test_box_int_convolution2(self): box = BoxConvolution('CONV-2', [0.4, 0.6], True) box.add(10) box.step() self.assertEqual(box.input(), 0) self.assertEqual(box.size(), int(0.6 * 10)) self.assertEqual(box.output(), int(0.4 * 10)) box.remove(int(0.4 * 10)) box.add(20) box.step() self.assertEqual(box.input(), 0) self.assertEqual(box.size(), int(0.6 * 10) + 20 - int(0.6 * 10) - int(0.4 * 20)) self.assertEqual(box.output(), int(0.6 * 10) + int(0.4 * 20))
def test_box_queue_decrease_duration(self): box = BoxConvolution('DELAY', [0, 0, 0, 0, 1]) inputs = [5] * 5 + [0] * 5 r = [5, 10, 15, 20, 20, 15, 10, 5, 0, 0] outputs = [0, 0, 0, 0, 5, 5, 5, 5, 5, 0] self.check_input_output(box, inputs, r, outputs) inputs = [5] * 5 + [0] * 5 r = [5, 10, 10, 10, 10, 5, 0, 0, 0, 0] outputs = [0, 0, 5, 5, 5, 5, 5, 0, 0, 0] for i in range(len(inputs)): if i == 2: box.set_output_coefficients([0, 0, 1]) box.add(inputs[i]) self.assertEqual(box.input(), inputs[i]) box.step() self.assertEqual(box.size(), r[i]) self.assertEqual(box.output(), outputs[i]) box.remove(box.output())