forked from keon/algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_streaming.py
More file actions
56 lines (49 loc) · 1.79 KB
/
test_streaming.py
File metadata and controls
56 lines (49 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import unittest
from algorithms.streaming import one_sparse
from algorithms.streaming.misra_gries import (
misras_gries,
)
class TestMisraGreis(unittest.TestCase):
def test_misra_correct(self):
self.assertEqual({"4": 5}, misras_gries([1, 4, 4, 4, 5, 4, 4]))
self.assertEqual({"1": 4}, misras_gries([0, 0, 0, 1, 1, 1, 1]))
self.assertEqual({"0": 4, "1": 3}, misras_gries([0, 0, 0, 0, 1, 1, 1, 2, 2], 3))
def test_misra_incorrect(self):
self.assertEqual(None, misras_gries([1, 2, 5, 4, 5, 4, 4, 5, 4, 4, 5]))
self.assertEqual(None, misras_gries([0, 0, 0, 2, 1, 1, 1]))
self.assertEqual(None, misras_gries([0, 0, 0, 1, 1, 1]))
class TestOneSparse(unittest.TestCase):
def test_one_sparse_correct(self):
self.assertEqual(
4, one_sparse([(4, "+"), (2, "+"), (2, "-"), (4, "+"), (3, "+"), (3, "-")])
)
self.assertEqual(
2,
one_sparse(
[(2, "+"), (2, "+"), (2, "+"), (2, "+"), (2, "+"), (2, "+"), (2, "+")]
),
)
def test_one_sparse_incorrect(self):
self.assertEqual(
None,
one_sparse(
[(2, "+"), (2, "+"), (2, "+"), (2, "+"), (2, "+"), (2, "+"), (1, "+")]
),
) # Two values remaining
self.assertEqual(
None,
one_sparse(
[
(2, "+"),
(2, "+"),
(2, "+"),
(2, "+"),
(2, "-"),
(2, "-"),
(2, "-"),
(2, "-"),
]
),
) # No values remaining
# Bitsum sum of sign is inccorect
self.assertEqual(None, one_sparse([(2, "+"), (2, "+"), (4, "+"), (4, "+")]))