-
Notifications
You must be signed in to change notification settings - Fork 192
Expand file tree
/
Copy pathtest_audio_event.py
More file actions
97 lines (79 loc) · 3.4 KB
/
test_audio_event.py
File metadata and controls
97 lines (79 loc) · 3.4 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# ==============================================================================
# Copyright (C) 2020-2026 Intel Corporation
#
# SPDX-License-Identifier: MIT
# ==============================================================================
import ctypes
import unittest
from gstgva.util import GList, libgst, GLIST_POINTER
from gstgva.tensor import Tensor
from gstgva.audio.audio_event import AudioEvent
from gstgva.audio.audio_event_meta import AudioEventMeta
import gi
gi.require_version('GLib', '2.0')
from gi.repository import GLib # pylint: disable=no-name-in-module, wrong-import-position
class TestAudioEvent(unittest.TestCase):
tensors_count = 2
confidence_value = 1
label_id = 9
def setUp(self):
classification_structure = libgst.gst_structure_new_empty('classification'.encode("utf-8"))
detection_structure = libgst.gst_structure_new_empty('detection'.encode("utf-8"))
tensor = Tensor(detection_structure)
tensor.__setitem__("confidence", self.confidence_value)
tensor.__setitem__("label_id", self.label_id)
lst = GList()
lst2 = GList()
lst.data = ctypes.c_void_p(classification_structure)
lst.next = GLIST_POINTER(lst2)
lst.prev = None
lst2.data = ctypes.c_void_p(detection_structure)
lst2.next = None
lst2.prev = GLIST_POINTER(lst)
self.meta = AudioEventMeta()
self.meta._meta_flags = 7
self.meta.event_type = 9
self.meta.id = 8
self.meta.start_timestamp = 1
self.meta.end_timestamp = 2
self.meta._params = GLIST_POINTER(lst)
self.audio_event = AudioEvent(self.meta)
def test_audio_event_segment(self):
seg = self.audio_event.segment()
self.assertEqual(seg.start_time, self.meta.start_timestamp)
self.assertEqual(seg.end_time, self.meta.end_timestamp)
def test_audio_event_segment_negative(self):
meta = AudioEventMeta()
audio_event = AudioEvent(meta)
seg = audio_event.segment()
self.assertEqual(seg.start_time, 0)
self.assertEqual(seg.end_time, 0)
def test_audio_event_label(self):
label = self.audio_event.label()
self.assertEqual(label, GLib.quark_to_string(self.meta.event_type))
def test_tensors(self):
tensors_count = 0
for tensor in self.audio_event.tensors():
tensors_count+=1
self.assertEqual(tensors_count, self.tensors_count)
def test_audio_event_label_id(self):
self.assertEqual(self.audio_event.label_id(), self.label_id)
def test_audio_event_label_id_negative(self):
meta = AudioEventMeta()
audio_event = AudioEvent(meta)
self.assertEqual(audio_event.label_id(), None)
def test_audio_event_confidence(self):
self.assertEqual(self.audio_event.confidence(), self.confidence_value)
def test_audio_event_confidence_None(self):
meta = AudioEventMeta()
audio_event = AudioEvent(meta)
self.assertEqual(audio_event.confidence(), None)
def test_audio_event_iterate_negative(self):
ret = [n for n in AudioEvent._iterate(None)]
self.assertEqual(ret, [])
def test_audio_event_meta(self):
self.assertEqual(self.audio_event.meta(), self.meta)
def tearDown(self):
pass
if __name__ == '__main__':
unittest.main()