コード例 #1
0
def test_process_emodel_no_exemplars():
    # input parameters
    emodel = 'emodel1'
    mtypes = ['mtype1', 'mtype2']
    scores_dict = {'emodel': [emodel, emodel],
                   'is_exemplar': [0, 0], 'is_repaired': [1, 0],
                   'is_original': [1, 0],
                   'opt_scores': [json.dumps({'Step1.SpikeCount': 2.0}),
                                  json.dumps({'Step1.SpikeCount': 2.0})],
                   'scores': [json.dumps({'Step1.SpikeCount': 2.0}),
                              json.dumps({'Step1.SpikeCount': 2.0})],
                   'etype': ['etype1', 'etype2'],
                   'fullmtype': mtypes,
                   'mtype': mtypes,
                   'extra_values': [json.dumps({'threshold_current': 0.0,
                                                'holding_current': 0.0}),
                                    json.dumps({'threshold_current': 0.0,
                                                'holding_current': 0.0})],
                   'morph_name': ['morph1', 'morph1'],
                   'layer': ['layer_1', 'layer_1']
                   }
    scores = pandas.DataFrame(scores_dict)
    score_values_dict = {'Step1.SpikeCount': [2.0, 2.0]}
    score_values = pandas.DataFrame(score_values_dict)
    to_skip_patterns = []
    regex_all = re.compile('.*')
    megate_patterns = [{'megate_feature_threshold': {'megate_threshold': 5,
                                                     'features': regex_all},
                        'emodel': regex_all, 'fullmtype': regex_all,
                        'etype': regex_all}]

    skip_repaired_exemplar = False
    enable_check_opt_scores = True

    select_best_perc = None

    # run function
    ret = table_processing.process_emodel((
        emodel, scores, score_values, to_skip_patterns, megate_patterns,
        skip_repaired_exemplar, enable_check_opt_scores, select_best_perc))

    # verify results
    nt.assert_is_none(ret)
コード例 #2
0
def test_process_emodel():
    # input parameters
    emodel = 'emodel1'
    mtypes = ['mtype1', 'mtype2']
    scores_dict = {'emodel': [emodel, emodel],
                   'is_exemplar': [1, 0], 'is_repaired': [1, 0],
                   'is_original': [0, 0],
                   'opt_scores': [json.dumps({'Step1.SpikeCount': 2.0}),
                                  json.dumps({'Step1.SpikeCount': 2.0})],
                   'scores': [json.dumps({'Step1.SpikeCount': 2.0}),
                              json.dumps({'Step1.SpikeCount': 2.0})],
                   'etype': ['etype1', 'etype2'],
                   'fullmtype': mtypes,
                   'mtype': mtypes,
                   'extra_values': [json.dumps({'threshold_current': 0.0,
                                                'holding_current': 0.0}),
                                    json.dumps({'threshold_current': 0.0,
                                                'holding_current': 0.0})],
                   'morph_name': ['morph1', 'morph1'],
                   'layer': ['layer_1', 'layer_1']
                   }
    scores = pandas.DataFrame(scores_dict)
    score_values_dict = {'Step1.SpikeCount': [2.0, 2.0]}
    score_values = pandas.DataFrame(score_values_dict)
    to_skip_patterns = []
    regex_all = re.compile('.*')
    megate_patterns = [{'megate_feature_threshold': {'megate_threshold': 5,
                                                     'features': regex_all},
                        'emodel': regex_all, 'fullmtype': regex_all,
                        'etype': regex_all}]

    skip_repaired_exemplar = False
    enable_check_opt_scores = True

    select_best_perc = None

    emodel, emodel_info = table_processing.process_emodel(
        (emodel, scores, score_values, to_skip_patterns, megate_patterns,
         skip_repaired_exemplar, enable_check_opt_scores, select_best_perc))

    (emodel_ext_neurondb, emodel_megate_pass, emodel_score_values,
     mtypes, emodel_megate_passed_all, emodel_median_scores,
     passed_combos) = emodel_info

    nt.assert_equal(emodel, emodel)

    # expected results
    columns = ['morph_name', 'layer', 'fullmtype', 'etype', 'emodel',
               'combo_name', 'threshold_current', 'holding_current']
    db_dict = {'morph_name': 'morph1',
               'layer': 'layer_1',
               'fullmtype': 'mtype2',
               'etype': 'etype2',
               'emodel': 'emodel1',
               'threshold_current': 0.0,
               'holding_current': 0.0,
               'combo_name': 'emodel1_mtype2_layer_1_morph1'
               }
    exp_db = pandas.DataFrame(data=db_dict, columns=columns, index=[1])

    columns = ['Step1.SpikeCount', 'Passed all']
    megate_scores_dict = {'Step1.SpikeCount': True, 'Passed all': True}
    exp_megate_scores = pandas.DataFrame(data=megate_scores_dict,
                                         columns=columns, index=[1])

    exp_score_values = pandas.DataFrame({'Step1.SpikeCount': 2.0}, index=[1])

    exp_mtypes = pandas.Series('mtype2', index=[1], name='fullmtype')

    # verify results
    pandas.util.testing.assert_frame_equal(emodel_ext_neurondb, exp_db)
    pandas.util.testing.assert_frame_equal(
        emodel_megate_pass, exp_megate_scores)
    pandas.util.testing.assert_frame_equal(
        emodel_score_values, exp_score_values)
    pandas.util.testing.assert_series_equal(mtypes, exp_mtypes)