@@ -22,12 +22,83 @@ def test_constructor_single(self):
2222 assert queue .next () == "a"
2323 assert queue .next () == "a"
2424
25+ def test_constructor_single_none (self ):
26+ queue = CircularQueue ([None ])
27+ assert queue .entries == [None ]
28+ assert queue .next () is None
29+ assert queue .next () is None
30+ assert queue .next () is None
31+ assert queue .next () is None
32+ assert queue .next () is None
33+ assert queue .next () is None
34+
2535 def test_constructor_multiple (self ):
26- queue = CircularQueue (["a" , "b" , "c" ])
27- assert queue .entries == ["a" , "b" , "c" ]
36+ queue = CircularQueue (["a" , "b" , "c" , "d" , "e" , None ])
37+ assert queue .entries == ["a" , "b" , "c" , "d" , "e" , None ]
38+ assert queue .next () == "a"
39+ assert queue .next () == "b"
40+ assert queue .next () == "c"
41+ assert queue .next () == "d"
42+ assert queue .next () == "e"
43+ assert queue .next () is None
44+ assert queue .next () == "a"
45+ assert queue .next () == "b"
46+ assert queue .next () == "c"
47+ assert queue .next () == "d"
48+ assert queue .next () == "e"
49+ assert queue .next () is None
50+ assert queue .next () == "a"
51+
52+ def test_constructor_multiple_first (self ):
53+ queue = CircularQueue (["a" , "b" , "c" , "d" , "e" , None ], first = "c" )
54+ assert queue .entries == ["a" , "b" , "c" , "d" , "e" , None ]
55+ assert queue .next () == "c"
56+ assert queue .next () == "d"
57+ assert queue .next () == "e"
58+ assert queue .next () is None
2859 assert queue .next () == "a"
2960 assert queue .next () == "b"
3061 assert queue .next () == "c"
62+ assert queue .next () == "d"
63+ assert queue .next () == "e"
64+ assert queue .next () is None
65+ assert queue .next () == "a"
66+ assert queue .next () == "b"
67+ assert queue .next () == "c"
68+
69+ def test_constructor_multiple_first_none (self ):
70+ queue = CircularQueue (["a" , "b" , "c" , "d" , "e" , None ], first = None )
71+ assert queue .entries == ["a" , "b" , "c" , "d" , "e" , None ]
72+ assert queue .next () is None
3173 assert queue .next () == "a"
3274 assert queue .next () == "b"
3375 assert queue .next () == "c"
76+ assert queue .next () == "d"
77+ assert queue .next () == "e"
78+ assert queue .next () is None
79+ assert queue .next () == "a"
80+ assert queue .next () == "b"
81+ assert queue .next () == "c"
82+ assert queue .next () == "d"
83+ assert queue .next () == "e"
84+ assert queue .next () is None
85+
86+ def test_constructor_first_invalid (self ):
87+ with pytest .raises (ValueError ):
88+ CircularQueue ([], first = None )
89+ with pytest .raises (ValueError ):
90+ CircularQueue ([], first = "" )
91+ with pytest .raises (ValueError ):
92+ CircularQueue ([], first = "f" )
93+ with pytest .raises (ValueError ):
94+ CircularQueue (["a" ], first = None )
95+ with pytest .raises (ValueError ):
96+ CircularQueue (["a" ], first = "" )
97+ with pytest .raises (ValueError ):
98+ CircularQueue (["a" ], first = "f" )
99+ with pytest .raises (ValueError ):
100+ CircularQueue (["a" , "b" , "c" , "d" , "e" ], first = None )
101+ with pytest .raises (ValueError ):
102+ CircularQueue (["a" , "b" , "c" , "d" , "e" ], first = "" )
103+ with pytest .raises (ValueError ):
104+ CircularQueue (["a" , "b" , "c" , "d" , "e" ], first = "f" )
0 commit comments