prior_table.py

View page source

prior_table: Example and Test

def prior_table() :
    import dismod_at
    import copy
    import collections
    #
    file_name      = 'example.db'
    connection     = dismod_at.create_connection(
        file_name, new = True, readonly = False
    )
    cursor         = connection.cursor()
    #
    # create the prior table
    ptype    = 'integer primary key'
    col_name2type = collections.OrderedDict( [
        ('prior_name',  'text'    ),
        ('density_id',  'integer' ),
        ('lower',       'real'    ),
        ('upper',       'real'    ),
        ('mean',        'real'    ),
        ('std',         'real'    ),
        ('eta',         'real'    )
    ] )
    col_name = list(col_name2type.keys())
    col_type = list(col_name2type.values())
    uniform_density_id = 0;
    row_list = [ [
        'none',              # prior_name
        uniform_density_id,  # density_id
        None,                # lower
        None,                # upper
        0,                   # mean
        None,                # std
        None                 # eta
    ],[
        'rate',              # prior_name
        uniform_density_id,  # density_id
        0.0,                 # lower
        1.0,                 # upper
        0.1,                 # mean
        None,                # std
        None                 # eta
    ] ]
    tbl_name = 'prior'
    dismod_at.create_table(connection, tbl_name, col_name, col_type, row_list)
    # ----------------------------------------------------------------------
    # include primary key in test
    check_name = [ tbl_name + '_id' ] + col_name
    check_list = list()
    for i in range( len(row_list) ) :
        check_list.append( [i] + row_list[i] )
    #
    row_list = dismod_at.get_row_list(connection, tbl_name, check_name)
    assert row_list == check_list
    # ----------------------------------------------------------------------
    connection.close()
    print('prior_table: OK')