示例#1
0
def test_size_is():
    words1 = Criteria().size_is(8)
    assert words1.get_size() == 8

    # add more failing cases
    try:
        words1.size_is('a')
        assert False
    except ArgumentError:
        assert True
示例#2
0
def test_contains_at():
    exp_dict = {2: 'b', 1: 'a', 3: 'c'}
    words1 = Criteria().contains_at(('a', 1), ('b', 2), ('c', 3))
    assert exp_dict == words1.get_contains_at()

    # add more failing cases
    try:
        Criteria().contains_at((1, 'a'), ('b', 2), ('c', 3))
        assert False
    except ArgumentError:
        assert True
示例#3
0
def test_remove_ends_with():
    words1 = Criteria().ends_with('noir')
    words1.remove_ends_with('oi')
    assert words1.get_ends_with() == 'nr'

    words1.remove_ends_with()
    assert len(words1.get_ends_with()) == 0

    Utils.set_disallowed_chars({'1', '2', '3'})
    try:
        words1.remove_ends_with('123')
        assert False
    except ArgumentError:
        assert True
示例#4
0
def test_remove_contains():
    words1 = Criteria().contains('or', 'a', 'we', 'moo')
    exp_list = ['or']
    words1.remove_contains('we', 'a', 'moo')
    assert Ct(words1.get_contains()) == Ct(exp_list)
    words1.remove_contains('or')

    try:
        words1.remove_contains('nonexistent')
        assert False
    except CriteriaError:
        assert True
示例#5
0
def test_remove_contains_at():
    words1 = Criteria().contains_at(('a', 1), ('b', 2), ('c', 3))
    exp_dict = {2: 'b'}
    words1.remove_contains_at(('c', 3), ('a', 1))
    assert exp_dict == words1.get_contains_at()

    try:
        words1.remove_contains_at(('a', 1))
        assert False
    except CriteriaError:
        assert True
示例#6
0
def test_contains():
    exp_list = ['or', 'we', 'a', 'moo']
    words1 = Criteria().contains('or', 'a', 'we')
    words1.contains('moo')
    assert Ct(words1.get_contains()) == Ct(exp_list)

    # add more failing cases
    Utils.set_disallowed_chars({'1', '2', '3'})
    try:
        Criteria().contains('a', 'B', '123')
        assert False
    except ArgumentError:
        assert True
示例#7
0
def test_copy_constructor():
    orig_words = Criteria()
    orig_words.begins_with('d').ends_with('n').contains('mna', 'tion')
    orig_words.contains_at(('t', 6), ('o', 8)).size_is(9)

    new_words = Criteria(orig_words)

    if orig_words.get_begins_with() != new_words.get_begins_with():
        assert False
    if orig_words.get_ends_with() != new_words.get_ends_with():
        assert False
    if Ct(orig_words.get_contains()) != Ct(new_words.get_contains()):
        assert False
    if Ct(orig_words.get_contains_at()) != Ct(new_words.get_contains_at()):
        assert False
    if orig_words.get_size() != new_words.get_size():
        assert False
示例#8
0
def test_ends_with():
    words1 = Criteria().ends_with('NOIR')
    words2 = Criteria().ends_with(['n', 'o', 'i', 'r'])
    words3 = Criteria().ends_with(('n', 'o', 'i', 'r'))

    assert words1.get_ends_with() == 'noir'
    assert words1.get_ends_with() == words2.get_ends_with()
    assert words2.get_ends_with() == words3.get_ends_with()

    Utils.set_disallowed_chars({'1', '2', '3'})
    try:
        Criteria().ends_with('123')
        assert False
    except ArgumentError:
        assert True
示例#9
0
def test_remove_size():
    words1 = Criteria().size_is(8)
    words1.remove_size()
    assert words1.get_size() is None
示例#10
0
def test_get_words():
    exp_result = ['correlates', 'corrosives', 'corrugates']
    words = Criteria()
    words.begins_with('c').ends_with('s').contains('or')
    words.contains_at(('o', 2), ('r', 4)).size_is(10)
    test_result = global_dict.get_words(words)

    assert Ct(test_result) == Ct(exp_result)

    exp_result = ['extrinsic']
    words = Criteria()
    words.begins_with('e').ends_with('c').contains('in')
    words.contains_at(('x', 2), ('r', 4)).size_is(9)
    test_result = scrabble_dict.get_words(words)

    assert Ct(test_result) == Ct(exp_result)