pyodide/packages/boost-histogram/test_boost_histogram.py

44 lines
1.2 KiB
Python
Raw Normal View History

from pytest_pyodide import run_in_pyodide
@run_in_pyodide(packages=["boost-histogram"])
def test_boost_histogram(selenium):
import unittest
2022-02-21 22:27:03 +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"]