aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/sca
diff options
context:
space:
mode:
Diffstat (limited to 'test/sca')
-rw-r--r--test/sca/test_align.py26
-rw-r--r--test/sca/test_combine.py6
-rw-r--r--test/sca/test_edit.py2
-rw-r--r--test/sca/test_filter.py4
-rw-r--r--test/sca/test_match.py19
-rw-r--r--test/sca/test_process.py2
-rw-r--r--test/sca/test_sampling.py8
-rw-r--r--test/sca/test_test.py25
-rw-r--r--test/sca/test_trace.py2
9 files changed, 50 insertions, 44 deletions
diff --git a/test/sca/test_align.py b/test/sca/test_align.py
index 57f7119..96cc458 100644
--- a/test/sca/test_align.py
+++ b/test/sca/test_align.py
@@ -12,9 +12,9 @@ class AlignTests(TestCase):
first_arr = np.array([10, 64, 120, 64, 10, 10, 10, 10, 10], dtype=np.dtype("i1"))
second_arr = np.array([10, 10, 10, 10, 50, 80, 50, 20, 10], dtype=np.dtype("i1"))
third_arr = np.array([70, 30, 42, 35, 28, 21, 15, 10, 5], dtype=np.dtype("i1"))
- a = Trace(None, None, first_arr)
- b = Trace(None, None, second_arr)
- c = Trace(None, None, third_arr)
+ a = Trace(first_arr, None, None)
+ b = Trace(second_arr, None, None)
+ c = Trace(third_arr, None, None)
result = align_correlation(a, b, c, reference_offset=1, reference_length=3, max_offset=4, min_correlation=0.65)
self.assertIsNotNone(result)
self.assertEqual(len(result), 2)
@@ -36,16 +36,16 @@ class AlignTests(TestCase):
def test_peak_align(self):
first_arr = np.array([10, 64, 14, 120, 15, 30, 10, 15, 20, 15, 15, 10, 10], dtype=np.dtype("i1"))
second_arr = np.array([10, 10, 10, 10, 90, 40, 50, 20, 10, 17, 16, 10, 10], dtype=np.dtype("i1"))
- a = Trace(None, None, first_arr)
- b = Trace(None, None, second_arr)
+ a = Trace(first_arr, None, None)
+ b = Trace(second_arr, None, None)
result = align_peaks(a, b, reference_offset=2, reference_length=5, max_offset=3)
self.assertEqual(np.argmax(result[0].samples), np.argmax(result[1].samples))
def test_sad_align(self):
first_arr = np.array([10, 64, 14, 120, 15, 30, 10, 15, 20, 15, 15, 10, 10], dtype=np.dtype("i1"))
second_arr = np.array([10, 10, 10, 10, 90, 40, 50, 20, 10, 17, 16, 10, 10], dtype=np.dtype("i1"))
- a = Trace(None, None, first_arr)
- b = Trace(None, None, second_arr)
+ a = Trace(first_arr, None, None)
+ b = Trace(second_arr, None, None)
result = align_sad(a, b, reference_offset=2, reference_length=5, max_offset=3)
self.assertEqual(len(result), 2)
@@ -53,9 +53,9 @@ class AlignTests(TestCase):
first_arr = np.array([10, 64, 14, 120, 15, 30, 10, 15, 20, 15, 15, 10, 10, 8, 10, 12, 10, 13, 9], dtype=np.dtype("i1"))
second_arr = np.array([10, 10, 10, 10, 60, 40, 90, 20, 10, 17, 16, 10, 10, 10, 10, 10, 17, 12, 10], dtype=np.dtype("i1"))
third_arr = np.array([10, 30, 20, 21, 15, 8, 10, 37, 21, 77, 20, 28, 25, 10, 9, 10, 15, 9, 10], dtype=np.dtype("i1"))
- a = Trace(None, None, first_arr)
- b = Trace(None, None, second_arr)
- c = Trace(None, None, third_arr)
+ a = Trace(first_arr, None, None)
+ b = Trace(second_arr, None, None)
+ c = Trace(third_arr, None, None)
result = align_dtw_scale(a, b, c)
self.assertEqual(np.argmax(result[0].samples), np.argmax(result[1].samples))
@@ -66,9 +66,9 @@ class AlignTests(TestCase):
first_arr = np.array([10, 64, 14, 120, 15, 30, 10, 15, 20, 15, 15, 10, 10, 8, 10, 12, 10, 13, 9], dtype=np.dtype("i1"))
second_arr = np.array([10, 10, 10, 10, 60, 40, 90, 20, 10, 17, 16, 10, 10, 10, 10, 10, 17, 12, 10], dtype=np.dtype("i1"))
third_arr = np.array([10, 30, 20, 21, 15, 8, 10, 47, 21, 77, 20, 28, 25, 10, 9, 10, 15, 9, 10], dtype=np.dtype("i1"))
- a = Trace(None, None, first_arr)
- b = Trace(None, None, second_arr)
- c = Trace(None, None, third_arr)
+ a = Trace(first_arr, None, None)
+ b = Trace(second_arr, None, None)
+ c = Trace(third_arr, None, None)
result = align_dtw(a, b, c)
self.assertEqual(np.argmax(result[0].samples), np.argmax(result[1].samples))
diff --git a/test/sca/test_combine.py b/test/sca/test_combine.py
index 113eb69..7fda1fa 100644
--- a/test/sca/test_combine.py
+++ b/test/sca/test_combine.py
@@ -7,9 +7,9 @@ from pyecsca.sca import Trace, CombinedTrace, average, conditional_average, stan
class CombineTests(TestCase):
def setUp(self):
- self.a = Trace(None, b"\xff", np.array([20, 80], dtype=np.dtype("i1")))
- self.b = Trace(None, b"\xff", np.array([30, 42], dtype=np.dtype("i1")))
- self.c = Trace(None, b"\x00", np.array([78, 56], dtype=np.dtype("i1")))
+ self.a = Trace(np.array([20, 80], dtype=np.dtype("i1")), None, b"\xff")
+ self.b = Trace(np.array([30, 42], dtype=np.dtype("i1")), None, b"\xff")
+ self.c = Trace(np.array([78, 56], dtype=np.dtype("i1")), None, b"\x00")
def test_average(self):
self.assertIsNone(average())
diff --git a/test/sca/test_edit.py b/test/sca/test_edit.py
index e44cfb0..637e9b7 100644
--- a/test/sca/test_edit.py
+++ b/test/sca/test_edit.py
@@ -8,7 +8,7 @@ from pyecsca.sca import Trace, trim, reverse, pad
class EditTests(TestCase):
def setUp(self):
- self._trace = Trace(None, None, np.array([10, 20, 30, 40, 50], dtype=np.dtype("i1")))
+ self._trace = Trace(np.array([10, 20, 30, 40, 50], dtype=np.dtype("i1")), None, None)
def test_trim(self):
result = trim(self._trace, 2)
diff --git a/test/sca/test_filter.py b/test/sca/test_filter.py
index c95d5b5..9194fa4 100644
--- a/test/sca/test_filter.py
+++ b/test/sca/test_filter.py
@@ -8,7 +8,9 @@ from .utils import plot
class FilterTests(TestCase):
def setUp(self):
- self._trace = Trace(None, None, np.array([5, 12, 15, 13, 15, 11, 7, 2, -4, -8, -10, -8, -13, -9, -11, -8, -5], dtype=np.dtype("i1")))
+ self._trace = Trace(
+ np.array([5, 12, 15, 13, 15, 11, 7, 2, -4, -8, -10, -8, -13, -9, -11, -8, -5],
+ dtype=np.dtype("i1")), None, None)
def test_lowpass(self):
result = filter_lowpass(self._trace, 100, 20)
diff --git a/test/sca/test_match.py b/test/sca/test_match.py
index 9cbd284..b8663c7 100644
--- a/test/sca/test_match.py
+++ b/test/sca/test_match.py
@@ -9,21 +9,22 @@ from .utils import plot
class MatchingTests(TestCase):
def test_simple_match(self):
- pattern = Trace(None, None,
- np.array([1, 15, 12, -10, 0, 13, 17, -1, 0], dtype=np.dtype("i1")))
- base = Trace(None, None, np.array(
+ pattern = Trace(np.array([1, 15, 12, -10, 0, 13, 17, -1, 0], dtype=np.dtype("i1")), None,
+ None)
+ base = Trace(np.array(
[0, 1, 3, 1, 2, -2, -3, 1, 15, 12, -10, 0, 13, 17, -1, 0, 3, 1],
- dtype=np.dtype("i1")))
+ dtype=np.dtype("i1")), None, None)
filtered = match_part(base, 7, 9)
self.assertListEqual(filtered, [7])
plot(self, base=base, pattern=pad(pattern, (filtered[0], 0)))
def test_multiple_match(self):
- pattern = Trace(None, None,
- np.array([1, 15, 12, -10, 0, 13, 17, -1, 0], dtype=np.dtype("i1")))
- base = Trace(None, None, np.array(
- [0, 1, 3, 1, 2, -2, -3, 1, 18, 10, -5, 0, 13, 17, -1, 0, 3, 1, 2, 5, 13, 8, -8, 1, 11, 15, 0, 1, 5, 2, 4],
- dtype=np.dtype("i1")))
+ pattern = Trace(np.array([1, 15, 12, -10, 0, 13, 17, -1, 0], dtype=np.dtype("i1")), None,
+ None)
+ base = Trace(np.array(
+ [0, 1, 3, 1, 2, -2, -3, 1, 18, 10, -5, 0, 13, 17, -1, 0, 3, 1, 2, 5, 13, 8, -8, 1,
+ 11, 15, 0, 1, 5, 2, 4],
+ dtype=np.dtype("i1")), None, None)
filtered = match_pattern(base, pattern, 0.9)
self.assertListEqual(filtered, [7, 19])
plot(self, base=base, pattern1=pad(pattern, (filtered[0], 0)), pattern2=pad(pattern, (filtered[1], 0)))
diff --git a/test/sca/test_process.py b/test/sca/test_process.py
index 5b80d1f..f039a95 100644
--- a/test/sca/test_process.py
+++ b/test/sca/test_process.py
@@ -7,7 +7,7 @@ from pyecsca.sca import Trace, absolute, invert, threshold, rolling_mean, offset
class ProcessTests(TestCase):
def setUp(self):
- self._trace = Trace(None, None, np.array([30, -60, 145, 247], dtype=np.dtype("i2")))
+ self._trace = Trace(np.array([30, -60, 145, 247], dtype=np.dtype("i2")), None, None)
def test_absolute(self):
result = absolute(self._trace)
diff --git a/test/sca/test_sampling.py b/test/sca/test_sampling.py
index 75a227d..40eaa7d 100644
--- a/test/sca/test_sampling.py
+++ b/test/sca/test_sampling.py
@@ -8,7 +8,7 @@ from .utils import plot
class SamplingTests(TestCase):
def setUp(self):
- self._trace = Trace(None, None, np.array([20, 40, 50, 50, 10], dtype=np.dtype("i1")))
+ self._trace = Trace(np.array([20, 40, 50, 50, 10], dtype=np.dtype("i1")), None, None)
def test_downsample_average(self):
result = downsample_average(self._trace, 2)
@@ -27,9 +27,9 @@ class SamplingTests(TestCase):
self.assertEqual(result.samples[1], 50)
def test_downsample_decimate(self):
- trace = Trace(None, None, np.array([20, 30, 55, 18, 15, 10, 35, 24, 21, 15, 10, 8, -10, -5,
- -8, -12, -15, -18, -34, -21, -17, -10, -5, -12, -6, -2,
- 4, 8, 21, 28], dtype=np.dtype("i1")))
+ trace = Trace(np.array([20, 30, 55, 18, 15, 10, 35, 24, 21, 15, 10, 8, -10, -5,
+ -8, -12, -15, -18, -34, -21, -17, -10, -5, -12, -6, -2,
+ 4, 8, 21, 28], dtype=np.dtype("i1")), None, None)
result = downsample_decimate(trace, 2)
self.assertIsNotNone(result)
self.assertIsInstance(result, Trace)
diff --git a/test/sca/test_test.py b/test/sca/test_test.py
index 898c6d6..5277c20 100644
--- a/test/sca/test_test.py
+++ b/test/sca/test_test.py
@@ -8,16 +8,19 @@ from pyecsca.sca import Trace, welch_ttest, student_ttest, ks_test
class TTestTests(TestCase):
def setUp(self):
- self.a = Trace(None, b"\xff", np.array([20, 80], dtype=np.dtype("i1")))
- self.b = Trace(None, b"\xff", np.array([30, 42], dtype=np.dtype("i1")))
- self.c = Trace(None, b"\x00", np.array([78, 56], dtype=np.dtype("i1")))
- self.d = Trace(None, b"\x00", np.array([98, 36], dtype=np.dtype("i1")))
+ self.a = Trace(np.array([20, 80], dtype=np.dtype("i1")), None, b"\xff")
+ self.b = Trace(np.array([30, 42], dtype=np.dtype("i1")), None, b"\xff")
+ self.c = Trace(np.array([78, 56], dtype=np.dtype("i1")), None, b"\x00")
+ self.d = Trace(np.array([98, 36], dtype=np.dtype("i1")), None, b"\x00")
def test_welch_ttest(self):
self.assertIsNotNone(welch_ttest([self.a, self.b], [self.c, self.d]))
- a = Trace(None, None, np.array([19.8, 20.4, 19.6, 17.8, 18.5, 18.9, 18.3, 18.9, 19.5, 22.0]))
- b = Trace(None, None, np.array([28.2, 26.6, 20.1, 23.3, 25.2, 22.1, 17.7, 27.6, 20.6, 13.7]))
- c = Trace(None, None, np.array([20.2, 21.6, 27.1, 13.3, 24.2, 20.1, 11.7, 25.6, 26.6, 21.4]))
+ a = Trace(np.array([19.8, 20.4, 19.6, 17.8, 18.5, 18.9, 18.3, 18.9, 19.5, 22.0]), None,
+ None)
+ b = Trace(np.array([28.2, 26.6, 20.1, 23.3, 25.2, 22.1, 17.7, 27.6, 20.6, 13.7]), None,
+ None)
+ c = Trace(np.array([20.2, 21.6, 27.1, 13.3, 24.2, 20.1, 11.7, 25.6, 26.6, 21.4]), None,
+ None)
result = welch_ttest([a, b], [b, c])
self.assertIsNotNone(result)
@@ -32,8 +35,8 @@ class KolmogorovSmirnovTests(TestCase):
def test_ks_test(self):
self.assertIsNone(ks_test([], []))
- a = Trace(None, b"\xff", np.array([20, 80], dtype=np.dtype("i1")))
- b = Trace(None, b"\xff", np.array([30, 42], dtype=np.dtype("i1")))
- c = Trace(None, b"\x00", np.array([78, 56], dtype=np.dtype("i1")))
- d = Trace(None, b"\x00", np.array([98, 36], dtype=np.dtype("i1")))
+ a = Trace(np.array([20, 80], dtype=np.dtype("i1")), None, b"\xff")
+ b = Trace(np.array([30, 42], dtype=np.dtype("i1")), None, b"\xff")
+ c = Trace(np.array([78, 56], dtype=np.dtype("i1")), None, b"\x00")
+ d = Trace(np.array([98, 36], dtype=np.dtype("i1")), None, b"\x00")
self.assertIsNotNone(ks_test([a, b], [c, d]))
diff --git a/test/sca/test_trace.py b/test/sca/test_trace.py
index 91b7161..3399c09 100644
--- a/test/sca/test_trace.py
+++ b/test/sca/test_trace.py
@@ -6,7 +6,7 @@ from pyecsca.sca import Trace
class TraceTests(TestCase):
def test_basic(self):
- trace = Trace("Name", b"\xff\xaa", np.array([10, 15, 24], dtype=np.dtype("i1")))
+ trace = Trace(np.array([10, 15, 24], dtype=np.dtype("i1")), "Name", b"\xff\xaa")
self.assertIsNotNone(trace)
self.assertIn("Trace", str(trace))
self.assertIsNone(trace.trace_set)