Esempio n. 1
0
def _aggregate_miner_data(raw_data):
    data_by_miner = groupby(0, raw_data)

    for miner, miner_data in data_by_miner.items():
        _, block_hashes, gas_prices = map(set, zip(*miner_data))
        yield MinerData(
            miner,
            len(set(block_hashes)),
            min(gas_prices),
            percentile(gas_prices, percentile=15))
def _aggregate_miner_data(raw_data):
    data_by_miner = groupby(0, raw_data)

    for miner, miner_data in data_by_miner.items():
        _, block_hashes, gas_prices = map(set, zip(*miner_data))
        try:
            price_percentile = percentile(gas_prices, percentile=20)
        except InsufficientData:
            price_percentile = min(gas_prices)
        yield MinerData(miner, len(set(block_hashes)), min(gas_prices),
                        price_percentile)
Esempio n. 3
0
def test_fuzz_test_percentiles(values, p):
    if not values:
        with pytest.raises(ValueError):
            percentile(values, p)
    else:
        percentile(values, p)
Esempio n. 4
0
def test_percentiles_with_out_of_bounds_fractions():
    assert 1 == percentile([1, 2, 3, 4], percentile=10)
    assert 1 == percentile([1, 2, 3, 4], percentile=15)
    assert 1 == percentile([1, 2, 3, 4], percentile=20)
    assert 1 == percentile([1, 2, 3, 4], percentile=25)
    assert 1 < percentile([1, 2, 3, 4], percentile=30)
Esempio n. 5
0
def test_percentiles_with_no_values():
    with pytest.raises(InsufficientData):
        percentile([], 1)
Esempio n. 6
0
def test_percentiles_out_of_one_hundred(p, expected):
    assert percentile(values, p) == expected
Esempio n. 7
0
def test_percentiles_with_single_values():
    with pytest.raises(ValueError):
        percentile([0], 1)