コード例 #1
0
def test_tuple_score():
	pq= PriorityQueue()
	assert pq.is_empty()
	pq.push((4,0,2),ord('A'))
	(score,item ) = pq.pop()
	assert score== (4,0,2)
	assert item==ord('A')
	pq.push((1,0,2),ord('B'))
	pq.push((2,0,2),ord('C'))
	pq.push((3,0,2),ord('D'))
	pq.push((40,0,2),ord('E'))
	pq.push((0,0,2),ord('F'))
	pq.push((50,0,2),ord('G'))
	(score,item )=pq.pop()
	assert score == (50,0,2)
	assert pq.get_score_by_item(ord('E')) == (40,0,2)
	assert pq.get_score_by_item(ord('F')) == (0,0,2)
	assert pq.get_score_by_item(ord('D')) == (3,0,2)
	assert item ==ord('G')
	(score,item )=pq.pop()
	assert score == (40,0,2)
	assert item ==ord('E')
	(score,item )=pq.pop()
	assert score == (3,0,2)
	assert item ==ord('D')
	(score,item )=pq.pop()
	assert score == (2,0,2)
	assert item ==ord('C')
	pq.pop()
	pq.pop()
	assert pq.is_empty()
コード例 #2
0
def test_change_score_sorting():
	pq=PriorityQueue()
	pq.push(50,ord('1'))
	pq.push(40,ord('2'))
	pq.push(30,ord('3'))
	pq.push(20,ord('4'))
	pq.push(10,ord('5'))
	pq.change_score(ord('5'),100)
	pq.change_score(ord('2'),45)
	assert len(pq) == 5
	assert pq.pop() == (100,ord('5'))
	#assert pq.pop() == (45,ord('2'))
	pq.push(60,ord('8'))
	assert pq.pop() == (60,ord('8'))
	pq.change_score(ord('2'),40)
	assert pq.pop()== (50,ord('1'))
	assert pq.pop() == (40,ord('2'))
コード例 #3
0
def test_is_empty():
	pq=PriorityQueue()
	assert pq.is_empty()
	pq.push(10,ord('A'))
	assert not pq.is_empty()
	pq.pop()
	assert pq.is_empty()
	pq.push(9,ord('B'))
	assert not pq.is_empty()
	pq.push(8,ord('C'))
	assert not pq.is_empty()
	pq.pop()
	assert not pq.is_empty()
	pq.pop()
	assert pq.is_empty()
	pq.push(7,ord('D'))
	assert not pq.is_empty()
	pq.push(6,ord('E'))
	assert not pq.is_empty()
	pq.push(5,ord('F'))
	assert not pq.is_empty()
	pq.push(4,ord('G'))
	assert not pq.is_empty()
	pq.pop()
	assert not pq.is_empty()
	pq.pop()
	assert not pq.is_empty()
	pq.pop()
	assert not pq.is_empty()
	pq.pop()
	assert pq.is_empty()
コード例 #4
0
def test_queue():
	pq = PriorityQueue()
	pq.push(10, ord('a'))
	pq.push(5, ord('b'))
	pq.push(12, ord('c'))
	pq.push(3, ord('d'))
	assert len(pq) == 4
	assert pq.pop() == (12, ord('c'))
	assert pq.pop() == (10, ord('a'))
	assert pq.pop() == (5, ord('b'))
	assert pq.pop() == (3, ord('d'))
コード例 #5
0
def test_change_score():
	pq = PriorityQueue()
	pq.push(10, ord('a'))
	pq.push(5, ord('b'))
	pq.change_score(ord('a'), 2)
	pq.push(12, ord('c'))
	pq.push(3, ord('d'))
	pq.change_score(ord('c'), 1)
	pq.change_score(ord('d'), 15)
	assert len(pq) == 4
	assert pq.pop() == (15, ord('d'))
	assert pq.pop() == (5, ord('b'))
	assert pq.pop() == (2, ord('a'))
	assert pq.pop() == (1, ord('c'))
コード例 #6
0
def test_tuple_score_sorting():
	pq= PriorityQueue()
	pq.push((10,0,0),ord('B'))
	pq.push((10,2,6),ord('C'))
	pq.push((10,3,2),ord('D'))
	pq.push((10,4,3),ord('E'))
	pq.push((10,2,2),ord('F'))
	pq.push((10,0,2),ord('G'))
	(score,item ) = pq.pop()
	assert score== (10,4,3)
	assert item==ord('E')
	(score,item ) = pq.pop()
	assert score== (10,3,2)
	assert item==ord('D')
	(score,item ) = pq.pop()
	assert score== (10,2,6)
	assert item==ord('C')
	(score,item ) = pq.pop()
	assert score== (10,2,2)
	assert item==ord('F')
	(score,item ) = pq.pop()
	assert score== (10,0,2)
	assert item==ord('G')
	pq.push((1,10,4),ord('X'))
	pq.push((5,0,6),ord('Y'))
	pq.push((1,8,2),ord('Z'))
	pq.change_score(ord('Y'),(100,100,100))
	pq.change_score(ord('Z'),(0,0,0))
	(score,item ) = pq.pop()
	assert score== (100,100,100)
	assert item==ord('Y')
	(score,item ) = pq.pop()
	assert score== (10,0,0)
	assert item==ord('B')
	(score,item ) = pq.pop()
	assert score== (1,10,4)
	assert item==ord('X')
	(score,item ) = pq.pop()
	assert score== (0,0,0)
	assert item==ord('Z')
	assert pq.is_empty()
コード例 #7
0
def test_queue2():
	pq = PriorityQueue()
	pq.push(1, ord('a'))
	pq.push(50, ord('b'))
	pq.push(2, ord('c'))
	pq.push(30, ord('d'))
	assert len(pq) == 4
	assert pq.get_score_by_item(ord('d')) == 30
	assert pq.pop() == (50, ord('b'))
	assert pq.pop() == (30, ord('d'))
	assert pq.pop() == (2, ord('c'))
	assert pq.pop() == (1, ord('a'))
コード例 #8
0
def test_is_empty():
    pq = PriorityQueue()
    assert pq.is_empty()
    pq.push(10, ord("A"))
    assert not pq.is_empty()
    pq.pop()
    assert pq.is_empty()
    pq.push(9, ord("B"))
    assert not pq.is_empty()
    pq.push(8, ord("C"))
    assert not pq.is_empty()
    pq.pop()
    assert not pq.is_empty()
    pq.pop()
    assert pq.is_empty()
    pq.push(7, ord("D"))
    assert not pq.is_empty()
    pq.push(6, ord("E"))
    assert not pq.is_empty()
    pq.push(5, ord("F"))
    assert not pq.is_empty()
    pq.push(4, ord("G"))
    assert not pq.is_empty()
    pq.pop()
    assert not pq.is_empty()
    pq.pop()
    assert not pq.is_empty()
    pq.pop()
    assert not pq.is_empty()
    pq.pop()
    assert pq.is_empty()
コード例 #9
0
def test_tuple_score():
    pq = PriorityQueue()
    assert pq.is_empty()
    pq.push((4, 0, 2), ord("A"))
    (score, item) = pq.pop()
    assert score == (4, 0, 2)
    assert item == ord("A")
    pq.push((1, 0, 2), ord("B"))
    pq.push((2, 0, 2), ord("C"))
    pq.push((3, 0, 2), ord("D"))
    pq.push((40, 0, 2), ord("E"))
    pq.push((0, 0, 2), ord("F"))
    pq.push((50, 0, 2), ord("G"))
    (score, item) = pq.pop()
    assert score == (50, 0, 2)
    assert pq.get_score_by_item(ord("E")) == (40, 0, 2)
    assert pq.get_score_by_item(ord("F")) == (0, 0, 2)
    assert pq.get_score_by_item(ord("D")) == (3, 0, 2)
    assert item == ord("G")
    (score, item) = pq.pop()
    assert score == (40, 0, 2)
    assert item == ord("E")
    (score, item) = pq.pop()
    assert score == (3, 0, 2)
    assert item == ord("D")
    (score, item) = pq.pop()
    assert score == (2, 0, 2)
    assert item == ord("C")
    pq.pop()
    pq.pop()
    assert pq.is_empty()
コード例 #10
0
def test_change_score_sorting():
    pq = PriorityQueue()
    pq.push(50, ord("1"))
    pq.push(40, ord("2"))
    pq.push(30, ord("3"))
    pq.push(20, ord("4"))
    pq.push(10, ord("5"))
    pq.change_score(ord("5"), 100)
    pq.change_score(ord("2"), 45)
    assert len(pq) == 5
    assert pq.pop() == (100, ord("5"))
    # assert pq.pop() == (45,ord('2'))
    pq.push(60, ord("8"))
    assert pq.pop() == (60, ord("8"))
    pq.change_score(ord("2"), 40)
    assert pq.pop() == (50, ord("1"))
    assert pq.pop() == (40, ord("2"))
コード例 #11
0
def test_change_score():
    pq = PriorityQueue()
    pq.push(10, ord("a"))
    pq.push(5, ord("b"))
    pq.change_score(ord("a"), 2)
    pq.push(12, ord("c"))
    pq.push(3, ord("d"))
    pq.change_score(ord("c"), 1)
    pq.change_score(ord("d"), 15)
    assert len(pq) == 4
    assert pq.pop() == (15, ord("d"))
    assert pq.pop() == (5, ord("b"))
    assert pq.pop() == (2, ord("a"))
    assert pq.pop() == (1, ord("c"))
コード例 #12
0
def test_queue():
    pq = PriorityQueue()
    pq.push(10, ord("a"))
    pq.push(5, ord("b"))
    pq.push(12, ord("c"))
    pq.push(3, ord("d"))
    assert len(pq) == 4
    assert pq.pop() == (12, ord("c"))
    assert pq.pop() == (10, ord("a"))
    assert pq.pop() == (5, ord("b"))
    assert pq.pop() == (3, ord("d"))
コード例 #13
0
def test_queue2():
    pq = PriorityQueue()
    pq.push(1, ord("a"))
    pq.push(50, ord("b"))
    pq.push(2, ord("c"))
    pq.push(30, ord("d"))
    assert len(pq) == 4
    assert pq.get_score_by_item(ord("d")) == 30
    assert pq.pop() == (50, ord("b"))
    assert pq.pop() == (30, ord("d"))
    assert pq.pop() == (2, ord("c"))
    assert pq.pop() == (1, ord("a"))
コード例 #14
0
def test_tuple_score_sorting():
    pq = PriorityQueue()
    pq.push((10, 0, 0), ord("B"))
    pq.push((10, 2, 6), ord("C"))
    pq.push((10, 3, 2), ord("D"))
    pq.push((10, 4, 3), ord("E"))
    pq.push((10, 2, 2), ord("F"))
    pq.push((10, 0, 2), ord("G"))
    (score, item) = pq.pop()
    assert score == (10, 4, 3)
    assert item == ord("E")
    (score, item) = pq.pop()
    assert score == (10, 3, 2)
    assert item == ord("D")
    (score, item) = pq.pop()
    assert score == (10, 2, 6)
    assert item == ord("C")
    (score, item) = pq.pop()
    assert score == (10, 2, 2)
    assert item == ord("F")
    (score, item) = pq.pop()
    assert score == (10, 0, 2)
    assert item == ord("G")
    pq.push((1, 10, 4), ord("X"))
    pq.push((5, 0, 6), ord("Y"))
    pq.push((1, 8, 2), ord("Z"))
    pq.change_score(ord("Y"), (100, 100, 100))
    pq.change_score(ord("Z"), (0, 0, 0))
    (score, item) = pq.pop()
    assert score == (100, 100, 100)
    assert item == ord("Y")
    (score, item) = pq.pop()
    assert score == (10, 0, 0)
    assert item == ord("B")
    (score, item) = pq.pop()
    assert score == (1, 10, 4)
    assert item == ord("X")
    (score, item) = pq.pop()
    assert score == (0, 0, 0)
    assert item == ord("Z")
    assert pq.is_empty()