def test_determine_bpl_mat_cat_for_general_fiction():
    assert sierra2store.determine_bpl_mat_cat('FIC ADAMS', '14afc',
                                              '-') == 'fi'
    assert sierra2store.determine_bpl_mat_cat('POL FIC ADAMS', '41awl',
                                              '-') == 'fi'
    assert sierra2store.determine_bpl_mat_cat('RUS J FIC LAGIN', '41awl',
                                              '-') == 'fi'
def test_determine_bpl_mat_cat_for_biography():
    assert sierra2store.determine_bpl_mat_cat('J B PAYNE C', '62jbi',
                                              '-') == 'bi'
    assert sierra2store.determine_bpl_mat_cat('B BROWN B', '62abi',
                                              '-') == 'bi'
    assert sierra2store.determine_bpl_mat_cat('RUS B GUBERMAN G', '42awl',
                                              '-') == 'bi'
def test_determine_bpl_mat_cat_for_picture_books():
    assert sierra2store.determine_bpl_mat_cat('SPA J-E GALAN', '41jwl',
                                              '-') == 'pi'
    assert sierra2store.determine_bpl_mat_cat('POL J-E', '41jwl', '-') == 'pi'
    assert sierra2store.determine_bpl_mat_cat('J-E', '02jje', '-') == 'pi'
    assert sierra2store.determine_bpl_mat_cat('J-E SCIESZKA', '02jje',
                                              '-') == 'pi'
def test_determine_bpl_mat_cat_for_graphic_novel():
    assert sierra2store.determine_bpl_mat_cat('J FIC STILTON', '45jfc',
                                              'u') == 'gn'
    assert sierra2store.determine_bpl_mat_cat('FIC PANETTA', '03yfc',
                                              'u') == 'gn'

    assert sierra2store.determine_bpl_mat_cat('J 641.815 K', '03', 'u') == 'gn'
def test_determine_bpl_mat_cat_for_large_print():
    assert sierra2store.determine_bpl_mat_cat('FIC CARCATERRA', '90alp',
                                              'l') == 'lp'
    assert sierra2store.determine_bpl_mat_cat('306.362 W', '90alp',
                                              'l') == 'lp'
    assert sierra2store.determine_bpl_mat_cat('B MOORE M', '90alp',
                                              'l') == 'lp'
def test_determine_bpl_mat_cat_when_no_shelf_code():
    assert sierra2store.determine_bpl_mat_cat('J 641.815 K', '03', 'u') == 'gn'
    assert sierra2store.determine_bpl_mat_cat('FIC ADAMS', '41', '-') == 'fi'
    assert sierra2store.determine_bpl_mat_cat('FIC ADAMS', '41', 's') == 'sf'
    assert sierra2store.determine_bpl_mat_cat('B ADAMS C', '41', '-') == 'bi'
    assert sierra2store.determine_bpl_mat_cat('J-E ADAMS', '02', '-') == 'pi'
    assert sierra2store.determine_bpl_mat_cat('SPA FIC ADAMS', '41',
                                              '-') == 'fi'
def test_determine_bpl_mat_cat_for_dewey_2xx():
    assert sierra2store.determine_bpl_mat_cat('248 B', '40anf', '-') == 'd2'
    assert sierra2store.determine_bpl_mat_cat('CHI 248.12 B', '40awl',
                                              '-') == 'd2'
def test_determine_bpl_mat_cat_for_dewey_1xx():
    assert sierra2store.determine_bpl_mat_cat('158 B', '40anf', '-') == 'd1'
    assert sierra2store.determine_bpl_mat_cat('CHI 158.12 B', '40awl',
                                              '-') == 'd1'
def test_determine_bpl_mat_cat_for_dewey_0xx():
    assert sierra2store.determine_bpl_mat_cat('005.42 B', '40anf', '-') == 'd0'
def test_determine_bpl_mat_cat_for_cds():
    assert sierra2store.determine_bpl_mat_cat('CD ORCH CHOPIN', '11acd',
                                              '-') == 'cd'
def test_determine_bpl_mat_cat_for_dvds():
    assert sierra2store.determine_bpl_mat_cat('DVD', '41adv', '-') == 'dv'
def test_determine_bpl_mat_cat_for_science_fiction():
    assert sierra2store.determine_bpl_mat_cat('FIC COREY', '14asf',
                                              's') == 'sf'
    # deck book
    assert sierra2store.determine_bpl_mat_cat('FIC ASIMOV', '14adk',
                                              's') == 'sf'
def test_determine_bpl_mat_cat_for_dewey_6xx():
    assert sierra2store.determine_bpl_mat_cat('623.4 B', '40anf', '-') == 'd6'
    assert sierra2store.determine_bpl_mat_cat('CHI 600.92 B', '40awl',
                                              '-') == 'd6'
def test_determine_bpl_mat_cat_for_romances():
    assert sierra2store.determine_bpl_mat_cat('FIC CHAPMAN', '14apb',
                                              'n') == 'rm'
def test_determine_bpl_mat_cat_for_bridge_books():
    assert sierra2store.determine_bpl_mat_cat('J FIC COVEN', '45jfc',
                                              'k') == 'yr'
def test_determine_bpl_mat_cat_for_mystery():
    assert sierra2store.determine_bpl_mat_cat('FIC MACRAE', '42afc',
                                              'm') == 'my'
    assert sierra2store.determine_bpl_mat_cat('FIC MACRAE', '42amy',
                                              'm') == 'my'
def test_determine_bpl_mat_cat_for_dewey_3xx():
    assert sierra2store.determine_bpl_mat_cat('364 B', '40anf', '-') == 'd3'
    assert sierra2store.determine_bpl_mat_cat('CHI 355.12 B', '40awl',
                                              '-') == 'd3'
def test_determine_bpl_mat_cat_for_dewey_8xx():
    assert sierra2store.determine_bpl_mat_cat('823.33 B K', '14anf',
                                              '-') == 'd8'
    assert sierra2store.determine_bpl_mat_cat('823 B', '14anf', '-') == 'd8'
def test_determine_bpl_mat_cat_for_dewey_4xx():
    assert sierra2store.determine_bpl_mat_cat('400 B', '40anf', '-') == 'd4'
    assert sierra2store.determine_bpl_mat_cat('CHI 400 B', '40awl',
                                              '-') == 'd4'
def test_determine_bpl_mat_cat_for_short_stories():
    assert sierra2store.determine_bpl_mat_cat('FIC WURZBACHER', '47ash',
                                              'y') == 'st'

    # short stories treated as general ficiton
    assert sierra2store.determine_bpl_mat_cat('FIC C', '87afc', 'y') == 'st'
def test_determine_bpl_mat_cat_for_dewey_7xx():
    assert sierra2store.determine_bpl_mat_cat('700.092 B', '40anf',
                                              '-') == 'd7'
    assert sierra2store.determine_bpl_mat_cat('CHI 700 B', '40awl',
                                              '-') == 'd7'
def test_determine_bpl_mat_cat_for_early_readers():
    assert sierra2store.determine_bpl_mat_cat('J-E SCIESZKA', '02jer',
                                              '-') == 'er'
def test_determine_bpl_mat_cat_for_dewey_9xx():
    assert sierra2store.determine_bpl_mat_cat('973 B', '40anf', '-') == 'd9'
    assert sierra2store.determine_bpl_mat_cat('CHI 974.74 B', '40awl',
                                              '-') == 'd9'
def test_determine_bpl_mat_cat_for_empty_call_no_string():
    assert sierra2store.determine_bpl_mat_cat('', '87awl', '-') is None