Completed
Push — master ( f2ad1f...2fd0d7 )
by Roy
01:28
created

TestCounter   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 41
rs 10
wmc 7

4 Methods

Rating   Name   Duplication   Size   Complexity  
A test_020_TotalCounter() 0 6 2
A test_030_AverageWindowCounter() 0 10 2
A test_010_TimebaseAverageEventCounter() 0 8 2
A test_020_delete() 0 13 1
1
#!/usr/bin/env python
2
# -*- encoding: utf-8 -*-
3
# vim: set et sw=4 ts=4 sts=4 ff=unix fenc=utf8:
4
# Author: Binux<[email protected]>
5
#         http://binux.me
6
# Created on 2015-04-05 00:05:58
7
8
import sys
9
import time
10
import unittest2 as unittest
11
12
from pyspider.libs import counter
13
14
class TestCounter(unittest.TestCase):
15
    def test_010_TimebaseAverageEventCounter(self):
16
        c = counter.TimebaseAverageEventCounter(2, 1)
17
        for i in range(100):
18
            time.sleep(0.1)
19
            c.event(100+i)
20
21
        self.assertEqual(c.sum, float(180+199)*20/2)
22
        self.assertEqual(c.avg, float(180+199)/2)
23
24
    def test_020_TotalCounter(self):
25
        c = counter.TotalCounter()
26
        for i in range(3):
27
            c.event(i)
28
        self.assertEqual(c.avg, 3)
29
        self.assertEqual(c.sum, 3)
30
31
    def test_030_AverageWindowCounter(self):
32
        c = counter.AverageWindowCounter(10)
33
        self.assertTrue(c.empty())
34
35
        for i in range(20):
36
            c.event(i)
37
38
        self.assertFalse(c.empty())
39
        self.assertEqual(c.avg, 14.5)
40
        self.assertEqual(c.sum, 145)
41
42
    def test_020_delete(self):
43
        c = counter.CounterManager()
44
        c.event(('a', 'b'), 1)
45
        c.event(('a', 'c'), 1)
46
        c.event(('b', 'c'), 1)
47
        
48
        self.assertIsNotNone(c['a'])
49
        self.assertIsNotNone(c['b'])
50
51
        del c['a']
52
53
        self.assertNotIn('a', c)
54
        self.assertIsNotNone(c['b'])
55