Skip to content

Commit d6645d9

Browse files
committed
remove test_regression.py and replace with test_regression_randomstate
test_regression tests were vendored from numpy but outdated and harder to maintain also remove vendored regression tests from test_numpy_random
1 parent 0631205 commit d6645d9

File tree

3 files changed

+186
-358
lines changed

3 files changed

+186
-358
lines changed

mkl_random/tests/test_regression.py

Lines changed: 0 additions & 183 deletions
This file was deleted.

mkl_random/tests/third_party/test_numpy_random.py

Lines changed: 0 additions & 175 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,178 +1129,3 @@ def test_three_arg_funcs(self):
11291129

11301130
out = func(argOne, argTwo[0], argThree)
11311131
assert_equal(out.shape, tgtShape)
1132-
1133-
1134-
class TestRegression:
1135-
1136-
def test_VonMises_range(self):
1137-
# Make sure generated random variables are in [-pi, pi].
1138-
# Regression test for ticket #986.
1139-
for mu in np.linspace(-7.0, 7.0, 5):
1140-
r = mkl_random.vonmises(mu, 1, 50)
1141-
assert_(np.all(r > -np.pi) and np.all(r <= np.pi))
1142-
1143-
def test_hypergeometric_range(self):
1144-
# Test for ticket #921
1145-
assert_(np.all(mkl_random.hypergeometric(3, 18, 11, size=10) < 4))
1146-
assert_(np.all(mkl_random.hypergeometric(18, 3, 11, size=10) > 0))
1147-
1148-
# Test for ticket #5623
1149-
args = [
1150-
(2**20 - 2, 2**20 - 2, 2**20 - 2), # Check for 32-bit systems
1151-
]
1152-
for arg in args:
1153-
assert_(mkl_random.hypergeometric(*arg) > 0)
1154-
1155-
def test_logseries_convergence(self):
1156-
# Test for ticket #923
1157-
N = 1000
1158-
mkl_random.seed(0)
1159-
rvsn = mkl_random.logseries(0.8, size=N)
1160-
# these two frequency counts should be close to theoretical
1161-
# numbers with this large sample
1162-
# theoretical large N result is 0.49706795
1163-
freq = np.sum(rvsn == 1) / N
1164-
msg = f"Frequency was {freq:f}, should be > 0.45"
1165-
assert_(freq > 0.45, msg)
1166-
# theoretical large N result is 0.19882718
1167-
freq = np.sum(rvsn == 2) / N
1168-
msg = f"Frequency was {freq:f}, should be < 0.23"
1169-
assert_(freq < 0.23, msg)
1170-
1171-
def test_shuffle_mixed_dimension(self):
1172-
# Test for trac ticket #2074
1173-
# only check that shuffle does not raise an error
1174-
for t in [
1175-
[1, 2, 3, None],
1176-
[(1, 1), (2, 2), (3, 3), None],
1177-
[1, (2, 2), (3, 3), None],
1178-
[(1, 1), 2, 3, None],
1179-
]:
1180-
shuffled = list(t)
1181-
mkl_random.shuffle(shuffled)
1182-
1183-
def test_call_within_randomstate(self):
1184-
# Check that custom RandomState does not call into global state
1185-
m = mkl_random.RandomState()
1186-
m.seed(1234)
1187-
res = m.choice(10, size=10, p=np.ones(10) / 10.0)
1188-
for i in range(3):
1189-
mkl_random.seed(i)
1190-
m.seed(1234)
1191-
# If m.state is not honored, the result will change
1192-
assert_array_equal(m.choice(10, size=10, p=np.ones(10) / 10.0), res)
1193-
1194-
def test_multivariate_normal_size_types(self):
1195-
# Test for multivariate_normal issue with 'size' argument.
1196-
# Check that the multivariate_normal size argument can be a
1197-
# numpy integer.
1198-
mkl_random.multivariate_normal([0], [[0]], size=1)
1199-
mkl_random.multivariate_normal([0], [[0]], size=np.int_(1))
1200-
mkl_random.multivariate_normal([0], [[0]], size=np.int64(1))
1201-
1202-
def test_beta_small_parameters(self):
1203-
# Test that beta with small a and b parameters does not produce
1204-
# NaNs due to roundoff errors causing 0 / 0, gh-5851
1205-
mkl_random.seed(1234567890)
1206-
x = mkl_random.beta(0.0001, 0.0001, size=100)
1207-
assert_(not np.any(np.isnan(x)), "Nans in mkl_random.beta")
1208-
1209-
def test_choice_sum_of_probs_tolerance(self):
1210-
# The sum of probs should be 1.0 with some tolerance.
1211-
# For low precision dtypes the tolerance was too tight.
1212-
# See numpy github issue 6123.
1213-
mkl_random.seed(1234)
1214-
a = [1, 2, 3]
1215-
counts = [4, 4, 2]
1216-
for dt in np.float16, np.float32, np.float64:
1217-
probs = np.array(counts, dtype=dt) / sum(counts)
1218-
c = mkl_random.choice(a, p=probs)
1219-
assert_(c in a)
1220-
assert_raises(ValueError, mkl_random.choice, a, p=probs * 0.9)
1221-
1222-
def test_shuffle_of_array_of_different_length_strings(self):
1223-
# Test that permuting an array of different length strings
1224-
# will not cause a segfault on garbage collection
1225-
# Tests gh-7710
1226-
mkl_random.seed(1234)
1227-
1228-
a = np.array(["a", "a" * 1000])
1229-
1230-
for _ in range(100):
1231-
mkl_random.shuffle(a)
1232-
1233-
# Force Garbage Collection - should not segfault.
1234-
import gc
1235-
1236-
gc.collect()
1237-
1238-
def test_shuffle_of_array_of_objects(self):
1239-
# Test that permuting an array of objects will not cause
1240-
# a segfault on garbage collection.
1241-
# See gh-7719
1242-
mkl_random.seed(1234)
1243-
a = np.array([np.arange(1), np.arange(4)], dtype=object)
1244-
1245-
for _ in range(1000):
1246-
mkl_random.shuffle(a)
1247-
1248-
# Force Garbage Collection - should not segfault.
1249-
import gc
1250-
1251-
gc.collect()
1252-
1253-
def test_permutation_subclass(self):
1254-
class N(np.ndarray):
1255-
pass
1256-
1257-
rng = mkl_random.RandomState()
1258-
orig = np.arange(3).view(N)
1259-
rng.permutation(orig)
1260-
assert_array_equal(orig, np.arange(3).view(N))
1261-
1262-
class M:
1263-
a = np.arange(5)
1264-
1265-
def __array__(self, dtype=None, copy=None):
1266-
return self.a
1267-
1268-
m = M()
1269-
rng.permutation(m)
1270-
assert_array_equal(m.__array__(), np.arange(5))
1271-
1272-
def test_warns_byteorder(self):
1273-
# GH 13159
1274-
other_byteord_dt = "<i4" if sys.byteorder == "big" else ">i4"
1275-
with pytest.deprecated_call(match="non-native byteorder is not"):
1276-
mkl_random.randint(0, 200, size=10, dtype=other_byteord_dt)
1277-
1278-
def test_named_argument_initialization(self):
1279-
# GH 13669
1280-
rs1 = mkl_random.RandomState(123456789)
1281-
rs2 = mkl_random.RandomState(seed=123456789)
1282-
assert rs1.randint(0, 100) == rs2.randint(0, 100)
1283-
1284-
def test_choice_return_dtype(self):
1285-
# GH 9867, now long since the NumPy default changed.
1286-
c = mkl_random.choice(10, p=[0.1] * 10, size=2)
1287-
assert c.dtype == np.dtype(np.long)
1288-
c = mkl_random.choice(10, p=[0.1] * 10, replace=False, size=2)
1289-
assert c.dtype == np.dtype(np.long)
1290-
c = mkl_random.choice(10, size=2)
1291-
assert c.dtype == np.dtype(np.long)
1292-
c = mkl_random.choice(10, replace=False, size=2)
1293-
assert c.dtype == np.dtype(np.long)
1294-
1295-
1296-
def test_multinomial_empty():
1297-
# gh-20483
1298-
# Ensure that empty p-vals are correctly handled
1299-
assert mkl_random.multinomial(10, []).shape == (0,)
1300-
assert mkl_random.multinomial(3, [], size=(7, 5, 3)).shape == (7, 5, 3, 0)
1301-
1302-
1303-
def test_multinomial_1d_pval():
1304-
# gh-20483
1305-
with pytest.raises(TypeError, match="pvals must be a 1-d"):
1306-
mkl_random.multinomial(10, 0.3)

0 commit comments

Comments
 (0)