def test_conservative_log_ratio(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['log_ratio', 'conservative_log_ratio'])
    assert ((abs(df_ams['log_ratio']) >= abs(
        df_ams['conservative_log_ratio'])).all())
    assert (df_ams['conservative_log_ratio'].iloc[0] == 0.7969356993077386)
def test_measures_log_ratio_gold(log_ratio_dataframe):

    df = log_ratio_dataframe
    df = df.join(
        am.calculate_measures(df, ['log_ratio', 'conservative_log_ratio']))

    for r, assoc in [('lr', 'log_ratio'), ('clr', 'conservative_log_ratio')]:

        assert (round(df[r], 3).equals(round(df[assoc], 3)))
def test_conservative_log_ratio_one_sided(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['conservative_log_ratio'])
    df_am = am.conservative_log_ratio(df, one_sided=True)
    df_am.name = 'clr_one_sided'
    df_ams = df_ams.join(df_am)
    assert ((abs(df_ams['conservative_log_ratio']) <= abs(
        df_ams['clr_one_sided'])).all())
def test_measures_ucs(ucs_dataframe):

    df = ucs_dataframe
    df = df.join(am.calculate_measures(df))

    for ucs, assoc in [('am.Dice', 'dice'), ('am.t.score', 't_score'),
                       ('am.z.score', 'z_score'),
                       ('am.MI', 'mutual_information'),
                       ('am.log.likelihood', 'log_likelihood'),
                       ('am.local.MI', 'local_mutual_information'),
                       ('am.simple.ll', 'simple_ll')]:

        assert (round(df[ucs], 10).equals(round(df[assoc], 10)))
def test_conservative_log_ratio_zero(zero_dataframe):

    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['log_ratio', 'conservative_log_ratio'])
    assert ((abs(df_ams['log_ratio']) >= abs(
        df_ams['conservative_log_ratio'])).all())
def test_log_likelihood_zero(zero_dataframe):
    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['log_likelihood'], freq=True)
    assert round(df_ams['log_likelihood'].iloc[0], 5) == 4087.27683
def test_log_ratio_zero(zero_dataframe):

    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['log_ratio'])
    assert df_ams['log_ratio'][0] == 12.036450448790957
def test_t_score(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['t_score'])
    assert df_ams['t_score'][0] == 2.846049894151541
def test_dice_zero(zero_dataframe):
    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['dice'])
    df_ams['dice'][0] == 0.16831229174945742
def test_log_ratio_invalid(invalid_dataframe):

    df = invalid_dataframe
    with pytest.raises(ValueError):
        am.calculate_measures(df, ['log_ratio'])
def test_t_score_zero(zero_dataframe):
    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['t_score'], freq=True, disc=.5)
    print(df_ams.loc['der'])
    df_ams['t_score'][0] == 15.532438056926377
def test_local_mi_invalid(invalid_dataframe):

    df = invalid_dataframe
    with pytest.raises(ValueError):
        am.calculate_measures(df, ['local_mutual_information'])
def test_mutual_information_zero(zero_dataframe):

    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['mutual_information'])
    assert df_ams['mutual_information'].iloc[0] == 0.06167489255030763
def test_log_likelihood(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['log_likelihood'])
    assert df_ams['log_likelihood'][0] == 65.01659467828966
def test_z_score_zero(zero_dataframe):
    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['z_score'])
    df_ams['z_score'].iloc[0] == 16.675431342469118
def test_z_score_nan(invalid_dataframe):
    df = invalid_dataframe
    with pytest.raises(ValueError):
        am.calculate_measures(df, ['z_score'])
def test_z_score(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['z_score'])
    assert df_ams['z_score'][0] == 9.0
def test_simple_ll(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['simple_ll'])
    assert df_ams['simple_ll'][0] == 28.05170185988092
def test_simple_ll_zero(zero_dataframe):
    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['simple_ll'], freq=True)
    assert df_ams['simple_ll'].iloc[0] == 264.9157890046413
def test_local_mi(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['local_mutual_information'])
    assert df_ams['local_mutual_information'][0] == 10.0
def test_log_ratio(fixed_dataframe):

    df = fixed_dataframe
    df_ams = am.calculate_measures(df, ['log_ratio'])
    assert df_ams['log_ratio'][0] == 7.491853096329675
def test_local_mi_zero(zero_dataframe):

    df = zero_dataframe
    df_ams = am.calculate_measures(df, ['local_mutual_information'], freq=True)
    assert df_ams['local_mutual_information'].iloc[0] == 848.9548959549845
def test_dice_invalid(invalid_dataframe):

    df = invalid_dataframe
    with pytest.raises(ValueError):
        am.calculate_measures(df, ['dice'])