Source code for bmtk.tests.builder.test_id_generator

import pytest

from bmtk.builder.id_generator import IDGenerator


[docs] def test_generator(): generator = IDGenerator() assert(generator.next() == 0) assert(generator.next() == 1) assert(generator.next() == 2)
[docs] def test_get_ids(): generator = IDGenerator() assert(generator.get_ids(1) == [0]) assert(generator.get_ids(size=3) == [1, 2, 3]) assert(generator.get_ids(size=0) == [])
[docs] def test_call(): generator = IDGenerator() assert(len(generator(100)) == 100) assert(len(generator(N=10)) == 10) assert(isinstance(generator(), int)) with pytest.raises(ValueError): generator(1, 2, 3) with pytest.raises(ValueError): generator(bad_arg=0) with pytest.raises(ValueError): generator(a=0, b=1)
[docs] def test_generator_initval(): generator = IDGenerator(101) assert(generator.next() == 101) assert(generator.next() == 102) assert(generator.next() == 103)
[docs] def test_contains(): generator = IDGenerator(init_val=10) gids = [generator.next() for _ in range(10)] assert(len(gids) == 10) assert(10 in generator) assert(19 in generator) assert(20 not in generator) generator.remove_id(54678) assert(54678 in generator) assert(54677 not in generator) assert(54679 not in generator) generator.remove_id(54677) assert(54677 in generator)
[docs] def test_remove(): generator = IDGenerator(init_val=101) assert(generator.next() == 101) generator.remove_id(102) generator.remove_id(104) generator.remove_id(106) assert(generator.next() == 103) assert(generator.next() == 105) assert(generator.next() == 107)
if __name__ == '__main__': # test_generator() # test_contains() # test_call() # test_get_ids() test_contains()