Skip to content

Instantly share code, notes, and snippets.

Avatar
🛰️

Matthew Barber honno

🛰️
View GitHub Profile
View test_benchmark.py
#!/usr/bin/env python
import pytest
from hypothesis import assume, given, strategies as st
from hypothesis.errors import InvalidArgument
from hypothesis.extra.array_api import DTYPE_NAMES, NUMERIC_NAMES
from tests.array_api.common import COMPLIANT_XP, xp, xps
from tests.common.debug import find_any, minimal
from tests.common.utils import fails_with, flaky
View hypothesis-array-api.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View wip_hypothesis_array_api_demo.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View health_check_problems.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@honno
honno / wip_hypothesis_array_api_demo.ipynb
Last active August 5, 2021 15:46
WIP demo that demonstrates what my internship project is doing. For those not familiar with Array API and/or Hypothesis I want to try and explain what they do.
View wip_hypothesis_array_api_demo.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@honno
honno / unmute_all.ipynb
Created July 18, 2021 10:05
Unmute everyone you follow. Yaknow, for those times when you fuck around with the API and mute everybody by accident.
View unmute_all.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@honno
honno / mersenne_twister.py
Last active February 8, 2021 16:56
Stupid simple Mersenne Twister.
View mersenne_twister.py
class Mersenne:
def __init__(self, seed=1234):
self.seed = seed
self.j = 2 ** 31 - 1
self.k = 16807
self.period = 2 ** 30
def __iter__(self):
return self
@honno
honno / defaultlist.py
Last active December 8, 2020 10:04
Reference implementation of the list with defaults, defaultlist
View defaultlist.py
from collections import defaultdict
from collections.abc import Sequence, MutableSequence
class defaultlist(MutableSequence):
def __init__(self, default_factory=None):
self._ddict = defaultdict(default_factory or defaultlist._none_factory)
@staticmethod
def _none_factory():
return None
@honno
honno / bins.py
Last active November 22, 2020 13:38
Reference implementation of the data binning container "Bins"
View bins.py
from collections.abc import MutableMapping
from bisect import bisect_left
class Bins(MutableMapping):
def __init__(self, intervals):
empty_bins = {interval: 0 for interval in intervals}
self._dict = empty_bins
def __getitem__(self, key):
interval = self._roundkey(key)
@honno
honno / randtests_refimpl.py
Created November 14, 2020 14:25
Reference implementation of the SP800-22 randomness tests
View randtests_refimpl.py
from collections import Counter
from collections import defaultdict
from itertools import accumulate
from itertools import product
from math import erfc
from math import floor
from math import log
from math import log2
from math import sqrt
from typing import Iterator