Spaces:
Running
Running
Commit
·
51a6b05
1
Parent(s):
25f8cac
Make tests non-random
Browse files- test/test.py +9 -6
- test/test_jax.py +5 -1
- test/test_torch.py +6 -2
test/test.py
CHANGED
|
@@ -53,10 +53,12 @@ class TestPipeline(unittest.TestCase):
|
|
| 53 |
|
| 54 |
np.testing.assert_almost_equal(
|
| 55 |
best_callable()[0](self.X),
|
| 56 |
-
self.X[:, 0]**2
|
|
|
|
| 57 |
np.testing.assert_almost_equal(
|
| 58 |
best_callable()[1](self.X),
|
| 59 |
-
self.X[:, 1]**2
|
|
|
|
| 60 |
|
| 61 |
def test_empty_operators_single_input(self):
|
| 62 |
X = np.random.randn(100, 1)
|
|
@@ -96,19 +98,20 @@ class TestBest(unittest.TestCase):
|
|
| 96 |
X = np.random.randn(10, 2)
|
| 97 |
y = np.cos(X[:, 0])**2
|
| 98 |
for f in [best_callable(), best_callable(self.equations)]:
|
| 99 |
-
np.testing.assert_almost_equal(f(X), y)
|
| 100 |
|
| 101 |
|
| 102 |
class TestFeatureSelection(unittest.TestCase):
|
| 103 |
-
def
|
| 104 |
np.random.seed(0)
|
| 105 |
-
|
|
|
|
|
|
|
| 106 |
y = X[:, 2]**2 + X[:, 3]**2
|
| 107 |
selected = run_feature_selection(X, y, select_k_features=2)
|
| 108 |
self.assertEqual(sorted(selected), [2, 3])
|
| 109 |
|
| 110 |
def test_feature_selection_handler(self):
|
| 111 |
-
np.random.seed(0)
|
| 112 |
X = np.random.randn(20000, 5)
|
| 113 |
y = X[:, 2]**2 + X[:, 3]**2
|
| 114 |
var_names = [f'x{i}' for i in range(5)]
|
|
|
|
| 53 |
|
| 54 |
np.testing.assert_almost_equal(
|
| 55 |
best_callable()[0](self.X),
|
| 56 |
+
self.X[:, 0]**2,
|
| 57 |
+
decimal=4)
|
| 58 |
np.testing.assert_almost_equal(
|
| 59 |
best_callable()[1](self.X),
|
| 60 |
+
self.X[:, 1]**2,
|
| 61 |
+
decimal=4)
|
| 62 |
|
| 63 |
def test_empty_operators_single_input(self):
|
| 64 |
X = np.random.randn(100, 1)
|
|
|
|
| 98 |
X = np.random.randn(10, 2)
|
| 99 |
y = np.cos(X[:, 0])**2
|
| 100 |
for f in [best_callable(), best_callable(self.equations)]:
|
| 101 |
+
np.testing.assert_almost_equal(f(X), y, decimal=4)
|
| 102 |
|
| 103 |
|
| 104 |
class TestFeatureSelection(unittest.TestCase):
|
| 105 |
+
def setUp(self):
|
| 106 |
np.random.seed(0)
|
| 107 |
+
|
| 108 |
+
def test_feature_selection(self):
|
| 109 |
+
X = np.random.randn(20000, 5)
|
| 110 |
y = X[:, 2]**2 + X[:, 3]**2
|
| 111 |
selected = run_feature_selection(X, y, select_k_features=2)
|
| 112 |
self.assertEqual(sorted(selected), [2, 3])
|
| 113 |
|
| 114 |
def test_feature_selection_handler(self):
|
|
|
|
| 115 |
X = np.random.randn(20000, 5)
|
| 116 |
y = X[:, 2]**2 + X[:, 3]**2
|
| 117 |
var_names = [f'x{i}' for i in range(5)]
|
test/test_jax.py
CHANGED
|
@@ -8,6 +8,9 @@ from jax import grad
|
|
| 8 |
import sympy
|
| 9 |
|
| 10 |
class TestJAX(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
| 11 |
def test_sympy2jax(self):
|
| 12 |
x, y, z = sympy.symbols('x y z')
|
| 13 |
cosx = 1.0 * sympy.cos(x) + y
|
|
@@ -35,5 +38,6 @@ class TestJAX(unittest.TestCase):
|
|
| 35 |
jformat = equations.iloc[-1].jax_format
|
| 36 |
np.testing.assert_almost_equal(
|
| 37 |
np.array(jformat['callable'](jnp.array(X), jformat['parameters'])),
|
| 38 |
-
np.square(np.cos(X[:, 1])) # Select feature 1
|
|
|
|
| 39 |
)
|
|
|
|
| 8 |
import sympy
|
| 9 |
|
| 10 |
class TestJAX(unittest.TestCase):
|
| 11 |
+
def setUp(self):
|
| 12 |
+
np.random.seed(0)
|
| 13 |
+
|
| 14 |
def test_sympy2jax(self):
|
| 15 |
x, y, z = sympy.symbols('x y z')
|
| 16 |
cosx = 1.0 * sympy.cos(x) + y
|
|
|
|
| 38 |
jformat = equations.iloc[-1].jax_format
|
| 39 |
np.testing.assert_almost_equal(
|
| 40 |
np.array(jformat['callable'](jnp.array(X), jformat['parameters'])),
|
| 41 |
+
np.square(np.cos(X[:, 1])), # Select feature 1
|
| 42 |
+
decimal=4
|
| 43 |
)
|
test/test_torch.py
CHANGED
|
@@ -6,10 +6,13 @@ import torch
|
|
| 6 |
import sympy
|
| 7 |
|
| 8 |
class TestTorch(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
| 9 |
def test_sympy2torch(self):
|
| 10 |
x, y, z = sympy.symbols('x y z')
|
| 11 |
cosx = 1.0 * sympy.cos(x) + y
|
| 12 |
-
X = torch.randn(
|
| 13 |
true = 1.0 * torch.cos(X[:, 0]) + X[:, 1]
|
| 14 |
torch_module = sympy2torch(cosx, [x, y, z])
|
| 15 |
self.assertTrue(
|
|
@@ -34,5 +37,6 @@ class TestTorch(unittest.TestCase):
|
|
| 34 |
tformat = equations.iloc[-1].torch_format
|
| 35 |
np.testing.assert_almost_equal(
|
| 36 |
tformat(torch.tensor(X)).detach().numpy(),
|
| 37 |
-
np.square(np.cos(X[:, 1])) #Selection 1st feature
|
|
|
|
| 38 |
)
|
|
|
|
| 6 |
import sympy
|
| 7 |
|
| 8 |
class TestTorch(unittest.TestCase):
|
| 9 |
+
def setUp(self):
|
| 10 |
+
np.random.seed(0)
|
| 11 |
+
|
| 12 |
def test_sympy2torch(self):
|
| 13 |
x, y, z = sympy.symbols('x y z')
|
| 14 |
cosx = 1.0 * sympy.cos(x) + y
|
| 15 |
+
X = torch.tensor(np.random.randn(1000, 3))
|
| 16 |
true = 1.0 * torch.cos(X[:, 0]) + X[:, 1]
|
| 17 |
torch_module = sympy2torch(cosx, [x, y, z])
|
| 18 |
self.assertTrue(
|
|
|
|
| 37 |
tformat = equations.iloc[-1].torch_format
|
| 38 |
np.testing.assert_almost_equal(
|
| 39 |
tformat(torch.tensor(X)).detach().numpy(),
|
| 40 |
+
np.square(np.cos(X[:, 1])), #Selection 1st feature
|
| 41 |
+
decimal=4
|
| 42 |
)
|