File tree Expand file tree Collapse file tree 2 files changed +37
-34
lines changed
Expand file tree Collapse file tree 2 files changed +37
-34
lines changed Original file line number Diff line number Diff line change 1+ import unittest
2+ from dataclasses import dataclass
3+ from datetime import date , datetime , timedelta
4+ from decimal import Decimal
5+ from typing import Optional
6+ from uuid import UUID
7+
8+ import six
9+ from dateutil .tz import tzutc
10+ from parameterized import parameterized
11+ from pydantic import BaseModel
12+ from pydantic .v1 import BaseModel as BaseModelV1
13+
14+ from posthog import utils
15+
16+
17+ class TestSizeLimitedDict (unittest .TestCase ):
18+ @parameterized .expand ([
19+ (10 , 100 ),
20+ (5 , 20 ),
21+ (20 , 200 )
22+ ])
23+ def test_size_limited_dict (self , size : int , iterations : int ) -> None :
24+ values = utils .SizeLimitedDict (size , lambda _ : - 1 )
25+
26+ for i in range (iterations ):
27+ values [i ] = i
28+
29+ assert values [i ] == i
30+ assert len (values ) == i % size + 1
31+
32+ if i % size == 0 :
33+ # old numbers should've been removed
34+ self .assertIsNone (values .get (i - 1 ))
35+ self .assertIsNone (values .get (i - 3 ))
36+ self .assertIsNone (values .get (i - 5 ))
37+ self .assertIsNone (values .get (i - 9 ))
Original file line number Diff line number Diff line change @@ -170,37 +170,3 @@ class TestDataClass:
170170 "inner_optional" : None ,
171171 },
172172 }
173-
174-
175- class TestSizeLimitedDict (unittest .TestCase ):
176- @parameterized .expand (
177- [
178- (5 , 20 ),
179- (10 , 100 ),
180- (3 , 15 ),
181- ]
182- )
183- def test_size_limited_dict_with_different_sizes (self , size , iterations ):
184- values = utils .SizeLimitedDict (size , lambda _ : - 1 )
185-
186- for i in range (iterations ):
187- values [i ] = i
188- assert values [i ] == i
189- assert len (values ) == min (i + 1 , size )
190-
191- def test_size_limited_dict (self ):
192- size = 10
193- values = utils .SizeLimitedDict (size , lambda _ : - 1 )
194-
195- for i in range (100 ):
196- values [i ] = i
197-
198- assert values [i ] == i
199- assert len (values ) == i % size + 1
200-
201- if i % size == 0 :
202- # old numbers should've been removed
203- assert values .get (i - 1 ) is None
204- assert values .get (i - 3 ) is None
205- assert values .get (i - 5 ) is None
206- assert values .get (i - 9 ) is None
You can’t perform that action at this time.
0 commit comments