-
-
Notifications
You must be signed in to change notification settings - Fork 142
Expand file tree
/
Copy pathtest_sklearnpipeline.py
More file actions
30 lines (22 loc) · 986 Bytes
/
test_sklearnpipeline.py
File metadata and controls
30 lines (22 loc) · 986 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import pytest
from pydp.ml.mechanisms.sklearn_pipeline import LaplaceMechanism
import numbers
import numpy as np
class TestLocalDP:
def test_epsilon_type(self):
assert isinstance(LaplaceMechanism().epsilon,numbers.Number)
def test_epsilon_val(self):
assert LaplaceMechanism().epsilon > 0
def test_sensitivity(self):
if(isinstance(LaplaceMechanism().sensitivity, numbers.Number)):
assert LaplaceMechanism().sensitivity > 0
@pytest.mark.parametrize("array", [np.array([[1,2,4,5],[7,8,9,10]])])
def test_sensitivity_calculation(self,array):
sensitivity_example=sensitivity_callable()
noisy_array=LaplaceMechanism(epsilon=1,sensitivity=sensitivity_example).sensitivity_calculation(array)
assert isinstance(noisy_array,np.ndarray)
assert array.shape==noisy_array.shape
assert noisy_array.ndim==2
class sensitivity_callable:
def __call__(self,x):
return abs(x[0]-0.1)