2022-07-31 10:00:45 +00:00
|
|
|
from pytest_pyodide import run_in_pyodide
|
2022-02-19 09:18:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
@run_in_pyodide(packages=["boost-histogram"])
|
2022-05-26 02:47:43 +00:00
|
|
|
def test_boost_histogram(selenium):
|
2022-02-19 09:18:46 +00:00
|
|
|
import unittest
|
2022-02-21 22:27:03 +00:00
|
|
|
|
2022-02-19 09:18:46 +00:00
|
|
|
import boost_histogram as bh
|
|
|
|
|
|
|
|
h = bh.Histogram(bh.axis.Integer(0, 10))
|
|
|
|
h.fill([1, 1, 1, 14])
|
|
|
|
assert h[bh.underflow] == 0
|
|
|
|
assert h[bh.loc(0)] == 0
|
|
|
|
assert h[bh.loc(1)] == 3
|
|
|
|
assert h[bh.overflow] == 1
|
|
|
|
|
|
|
|
assert h.sum() == 3
|
|
|
|
assert h.sum(flow=True) == 4
|
|
|
|
assert h[sum] == 4
|
|
|
|
|
|
|
|
h = bh.Histogram(bh.axis.Regular(10, 0, 10), bh.axis.Boolean())
|
|
|
|
assert len(h.axes[0]) == 10
|
|
|
|
assert len(h.axes[1]) == 2
|
|
|
|
|
|
|
|
h.fill([0.5, 0.5, 3.5], [True, False, True])
|
|
|
|
assert h[sum, bh.loc(True)] == 2
|
|
|
|
assert h[sum, bh.loc(False)] == 1
|
|
|
|
assert h[0, sum] == 2
|
|
|
|
assert h[0, bh.loc(True)] == 1
|
|
|
|
|
|
|
|
h = bh.Histogram(bh.axis.StrCategory([], growth=True))
|
|
|
|
h.fill("fear leads to anger anger leads to hate hate leads to suffering".split())
|
|
|
|
|
|
|
|
assert h[bh.loc("fear")] == 1
|
|
|
|
assert h[bh.loc("anger")] == 2
|
|
|
|
assert h[bh.loc("hate")] == 2
|
|
|
|
assert h[bh.loc("to")] == 3
|
|
|
|
|
|
|
|
# Test exception handling
|
|
|
|
mean = bh.accumulators.Mean()
|
|
|
|
|
|
|
|
with unittest.TestCase().assertRaises(KeyError):
|
|
|
|
mean["invalid"]
|