From nobody Wed Oct 8 03:08:31 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B20A6283FF8; Wed, 9 Jul 2025 09:09:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752052146; cv=none; b=jzdPIp6uJVf7lwLiTrzabNSZA3rtVpjA+5h5nesNM0VHcfDZrOBE7gc3bbaklFliU2EhdAhQibT9Ta7GcxqrSQlMaO7h+3xlawLUzbi/vQjBOYXqM5SyP14cup1cHtiRF57E616dBvGzhzZhoUD4+yUzSFy86vKzU5jAaDIgsSA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752052146; c=relaxed/simple; bh=0YT23cbf3ahbOVyAGk/jynunznrLudOSflLr6hltA4k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rsCFsC7RmL2lIOCna6DNHV+umRPuAs7zOregaXvB2I6Wv7yA/0azJeI7Lmyh0JHvojpxmtJhY2WVw2gzBqVR7WH98EppWxiWaLC5W7aNJq6LmuXVJVdKSdPaXUq3JGgtRfAXlh4u23/Fk3MWXxjkcRY++WMHZwqeCSREwdDf63w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=opWo33Wx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="opWo33Wx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBEB3C4CEF5; Wed, 9 Jul 2025 09:09:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752052146; bh=0YT23cbf3ahbOVyAGk/jynunznrLudOSflLr6hltA4k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=opWo33WxuZOWnsKdWhhLNlpB3tvqAX/cDIbzNNQC9yU9wpzUAehK3fMLkWfnSghjf KPJsa+H+YYA5cTW6XCcD5V6nGvV4MormSHm+HTN1y4Br0M9ZisczBt6B5BlDj9+uIN zpnYXowOlcTjbKeg0ABA4RhRc+n02+i04vuh1F2XZR0G/NjEGi5xtwvYYZHDvsNjQS x/axOxXVNfjwChvmWdGrZXrdIdyv3zlpfH4+RMFt4NEkNcGjEFR+CLmgq3jjsQZ4fG kLhKyB2ZfkNG6aVo92dJeFO3Ikq+HWdQUAbRcgkupfUYlikeOk93FavNfDiLNrGWx6 bmmjWQ8++XuIA== From: Benjamin Tissoires Date: Wed, 09 Jul 2025 11:08:49 +0200 Subject: [PATCH 1/3] selftests/hid: run ruff format on the python part Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250709-wip-fix-ci-v1-1-b7df4c271cf8@kernel.org> References: <20250709-wip-fix-ci-v1-0-b7df4c271cf8@kernel.org> In-Reply-To: <20250709-wip-fix-ci-v1-0-b7df4c271cf8@kernel.org> To: Jiri Kosina , Peter Hutterer , Shuah Khan Cc: linux-input@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Benjamin Tissoires X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1752052142; l=24415; i=bentiss@kernel.org; s=20230215; h=from:subject:message-id; bh=0YT23cbf3ahbOVyAGk/jynunznrLudOSflLr6hltA4k=; b=g/i5omnMCTbU3WtX/CdsZjRerw6YkiHGgx52MZXa0pu0N1dYWgA3fRTA4AoemRifGyvzyr+dK WPDANhzRZtPAaLRyRXoXxD+YkQvLvCQvnnKHPo2I6sG0/5RmcUCDhdm X-Developer-Key: i=bentiss@kernel.org; a=ed25519; pk=7D1DyAVh6ajCkuUTudt/chMuXWIJHlv2qCsRkIizvFw= We aim at syncing with the hid-tools repo on gitlab.freedesktop.org/libevdev/hid-tools. One of the commits is this mechanical formatting, so pull it over here so changes are not hidden by those. Signed-off-by: Benjamin Tissoires --- tools/testing/selftests/hid/tests/test_tablet.py | 4 +- .../selftests/hid/tests/test_wacom_generic.py | 436 +++++++++++++++--= ---- 2 files changed, 325 insertions(+), 115 deletions(-) diff --git a/tools/testing/selftests/hid/tests/test_tablet.py b/tools/testi= ng/selftests/hid/tests/test_tablet.py index a9e2de1e8861b2b1fec0f2a245e9bccee54b9645..52fb22cac91e86f85b00a312895= c98e6379f02ad 100644 --- a/tools/testing/selftests/hid/tests/test_tablet.py +++ b/tools/testing/selftests/hid/tests/test_tablet.py @@ -1228,9 +1228,9 @@ class Huion_Kamvas_Pro_19_256c_006b(PenDigitizer): pen.current_state =3D state =20 def call_input_event(self, report): - if report[0] =3D=3D 0x0a: + if report[0] =3D=3D 0x0A: # ensures the original second Eraser usage is null - report[1] &=3D 0xdf + report[1] &=3D 0xDF =20 # ensures the original last bit is equal to bit 6 (In Range) if report[1] & 0x40: diff --git a/tools/testing/selftests/hid/tests/test_wacom_generic.py b/tool= s/testing/selftests/hid/tests/test_wacom_generic.py index b62c7dba6777f975dd9158f6788a6177307bc9e4..5cbc0cc9308f653b817e54a95f8= b53a83782f105 100644 --- a/tools/testing/selftests/hid/tests/test_wacom_generic.py +++ b/tools/testing/selftests/hid/tests/test_wacom_generic.py @@ -892,7 +892,7 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.TestMu= ltitouch, TouchTabletTest locations. The value of `t` may be incremented over time to move t= he points along a linear path. """ - return [ self.make_contact(id, t) for id in range(0, n) ] + return [self.make_contact(id, t) for id in range(0, n)] =20 def assert_contact(self, uhdev, evdev, contact_ids, t=3D0): """ @@ -997,12 +997,17 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.Test= Multitouch, TouchTabletTest =20 assert libevdev.InputEvent(libevdev.EV_KEY.BTN_TOUCH, 1) in events =20 - self.assert_contacts(uhdev, evdev, - [ self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D None), - self.ContactIds(contact_id =3D 1, tracking_id =3D 0, slot_nu= m =3D 0), - self.ContactIds(contact_id =3D 2, tracking_id =3D -1, slot_n= um =3D None), - self.ContactIds(contact_id =3D 3, tracking_id =3D 1, slot_nu= m =3D 1), - self.ContactIds(contact_id =3D 4, tracking_id =3D -1, slot_n= um =3D None) ]) + self.assert_contacts( + uhdev, + evdev, + [ + self.ContactIds(contact_id=3D0, tracking_id=3D-1, slot_num= =3DNone), + self.ContactIds(contact_id=3D1, tracking_id=3D0, slot_num= =3D0), + self.ContactIds(contact_id=3D2, tracking_id=3D-1, slot_num= =3DNone), + self.ContactIds(contact_id=3D3, tracking_id=3D1, slot_num= =3D1), + self.ContactIds(contact_id=3D4, tracking_id=3D-1, slot_num= =3DNone), + ], + ) =20 def confidence_change_assert_playback(self, uhdev, evdev, timeline): """ @@ -1026,7 +1031,7 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.Test= Multitouch, TouchTabletTest events =3D uhdev.next_sync_events() self.debug_reports(r, uhdev, events) =20 - ids =3D [ x[0] for x in state ] + ids =3D [x[0] for x in state] self.assert_contacts(uhdev, evdev, ids, t) =20 t +=3D 1 @@ -1044,27 +1049,68 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.Te= stMultitouch, TouchTabletTest uhdev =3D self.uhdev evdev =3D uhdev.get_evdev() =20 - self.confidence_change_assert_playback(uhdev, evdev, [ - # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D=3D D= own + confident - # Both fingers confidently in contact - [(self.ContactIds(contact_id =3D 0, tracking_id =3D 0, slot_nu= m =3D 0), True, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D1: Contact 0 =3D=3D !Down + confident; Contact 1 =3D=3D = Down + confident - # First finger looses confidence and clears only the tipswitch= flag - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D2: Contact 0 =3D=3D !Down + !confident; Contact 1 =3D=3D= Down + confident - # First finger has lost confidence and has both flags cleared - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D3: Contact 0 =3D=3D !Down + !confident; Contact 1 =3D=3D= Down + confident - # First finger has lost confidence and has both flags cleared - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)] - ]) + self.confidence_change_assert_playback( + uhdev, + evdev, + [ + # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D= =3D Down + confident + # Both fingers confidently in contact + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D1: Contact 0 =3D=3D !Down + confident; Contact 1 =3D= =3D Down + confident + # First finger looses confidence and clears only the tipsw= itch flag + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D2: Contact 0 =3D=3D !Down + !confident; Contact 1 = =3D=3D Down + confident + # First finger has lost confidence and has both flags clea= red + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D3: Contact 0 =3D=3D !Down + !confident; Contact 1 = =3D=3D Down + confident + # First finger has lost confidence and has both flags clea= red + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + ], + ) =20 def test_confidence_loss_b(self): """ @@ -1079,27 +1125,68 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.Te= stMultitouch, TouchTabletTest uhdev =3D self.uhdev evdev =3D uhdev.get_evdev() =20 - self.confidence_change_assert_playback(uhdev, evdev, [ - # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D=3D D= own + confident - # Both fingers confidently in contact - [(self.ContactIds(contact_id =3D 0, tracking_id =3D 0, slot_nu= m =3D 0), True, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D1: Contact 0 =3D=3D !Down + !confident; Contact 1 =3D=3D= Down + confident - # First finger looses confidence and has both flags cleared si= multaneously - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D2: Contact 0 =3D=3D !Down + !confident; Contact 1 =3D=3D= Down + confident - # First finger has lost confidence and has both flags cleared - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D3: Contact 0 =3D=3D !Down + !confident; Contact 1 =3D=3D= Down + confident - # First finger has lost confidence and has both flags cleared - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)] - ]) + self.confidence_change_assert_playback( + uhdev, + evdev, + [ + # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D= =3D Down + confident + # Both fingers confidently in contact + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D1: Contact 0 =3D=3D !Down + !confident; Contact 1 = =3D=3D Down + confident + # First finger looses confidence and has both flags cleare= d simultaneously + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D2: Contact 0 =3D=3D !Down + !confident; Contact 1 = =3D=3D Down + confident + # First finger has lost confidence and has both flags clea= red + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D3: Contact 0 =3D=3D !Down + !confident; Contact 1 = =3D=3D Down + confident + # First finger has lost confidence and has both flags clea= red + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + ], + ) =20 def test_confidence_loss_c(self): """ @@ -1113,27 +1200,68 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.Te= stMultitouch, TouchTabletTest uhdev =3D self.uhdev evdev =3D uhdev.get_evdev() =20 - self.confidence_change_assert_playback(uhdev, evdev, [ - # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D=3D D= own + confident - # Both fingers confidently in contact - [(self.ContactIds(contact_id =3D 0, tracking_id =3D 0, slot_nu= m =3D 0), True, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D1: Contact 0 =3D=3D Down + !confident; Contact 1 =3D=3D = Down + confident - # First finger looses confidence and clears only the confidenc= e flag - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), True, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D2: Contact 0 =3D=3D !Down + !confident; Contact 1 =3D=3D= Down + confident - # First finger has lost confidence and has both flags cleared - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D3: Contact 0 =3D=3D !Down + !confident; Contact 1 =3D=3D= Down + confident - # First finger has lost confidence and has both flags cleared - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)] - ]) + self.confidence_change_assert_playback( + uhdev, + evdev, + [ + # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D= =3D Down + confident + # Both fingers confidently in contact + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D1: Contact 0 =3D=3D Down + !confident; Contact 1 =3D= =3D Down + confident + # First finger looses confidence and clears only the confi= dence flag + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + True, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D2: Contact 0 =3D=3D !Down + !confident; Contact 1 = =3D=3D Down + confident + # First finger has lost confidence and has both flags clea= red + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D3: Contact 0 =3D=3D !Down + !confident; Contact 1 = =3D=3D Down + confident + # First finger has lost confidence and has both flags clea= red + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + ], + ) =20 def test_confidence_gain_a(self): """ @@ -1144,27 +1272,68 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.Te= stMultitouch, TouchTabletTest uhdev =3D self.uhdev evdev =3D uhdev.get_evdev() =20 - self.confidence_change_assert_playback(uhdev, evdev, [ - # t=3D0: Contact 0 =3D=3D Down + !confident; Contact 1 =3D=3D = Down + confident - # Only second finger is confidently in contact - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D None), True, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 0, slot_nu= m =3D 0), True, True)], - - # t=3D1: Contact 0 =3D=3D Down + !confident; Contact 1 =3D=3D = Down + confident - # First finger gains confidence - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D None), True, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 0, slot_nu= m =3D 0), True, True)], - - # t=3D2: Contact 0 =3D=3D Down + confident; Contact 1 =3D=3D D= own + confident - # First finger remains confident - [(self.ContactIds(contact_id =3D 0, tracking_id =3D 1, slot_nu= m =3D 1), True, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 0, slot_nu= m =3D 0), True, True)], - - # t=3D3: Contact 0 =3D=3D Down + confident; Contact 1 =3D=3D D= own + confident - # First finger remains confident - [(self.ContactIds(contact_id =3D 0, tracking_id =3D 1, slot_nu= m =3D 1), True, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 0, slot_nu= m =3D 0), True, True)] - ]) + self.confidence_change_assert_playback( + uhdev, + evdev, + [ + # t=3D0: Contact 0 =3D=3D Down + !confident; Contact 1 =3D= =3D Down + confident + # Only second finger is confidently in contact + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3DNone), + True, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ], + # t=3D1: Contact 0 =3D=3D Down + !confident; Contact 1 =3D= =3D Down + confident + # First finger gains confidence + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3DNone), + True, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ], + # t=3D2: Contact 0 =3D=3D Down + confident; Contact 1 =3D= =3D Down + confident + # First finger remains confident + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ], + # t=3D3: Contact 0 =3D=3D Down + confident; Contact 1 =3D= =3D Down + confident + # First finger remains confident + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ], + ], + ) =20 def test_confidence_gain_b(self): """ @@ -1175,24 +1344,65 @@ class TestDTH2452Tablet(test_multitouch.BaseTest.Te= stMultitouch, TouchTabletTest uhdev =3D self.uhdev evdev =3D uhdev.get_evdev() =20 - self.confidence_change_assert_playback(uhdev, evdev, [ - # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D=3D D= own + confident - # First and second finger confidently in contact - [(self.ContactIds(contact_id =3D 0, tracking_id =3D 0, slot_nu= m =3D 0), True, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D1: Contact 0 =3D=3D Down + !confident; Contact 1 =3D=3D = Down + confident - # Firtst finger looses confidence - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), True, False), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D2: Contact 0 =3D=3D Down + confident; Contact 1 =3D=3D D= own + confident - # First finger gains confidence - [(self.ContactIds(contact_id =3D 0, tracking_id =3D 2, slot_nu= m =3D 0), True, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)], - - # t=3D3: Contact 0 =3D=3D !Down + confident; Contact 1 =3D=3D = Down + confident - # First finger goes up - [(self.ContactIds(contact_id =3D 0, tracking_id =3D -1, slot_n= um =3D 0), False, True), - (self.ContactIds(contact_id =3D 1, tracking_id =3D 1, slot_nu= m =3D 1), True, True)] - ]) + self.confidence_change_assert_playback( + uhdev, + evdev, + [ + # t=3D0: Contact 0 =3D=3D Down + confident; Contact 1 =3D= =3D Down + confident + # First and second finger confidently in contact + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D0, s= lot_num=3D0), + True, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D1: Contact 0 =3D=3D Down + !confident; Contact 1 =3D= =3D Down + confident + # Firtst finger looses confidence + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + True, + False, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D2: Contact 0 =3D=3D Down + confident; Contact 1 =3D= =3D Down + confident + # First finger gains confidence + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D2, s= lot_num=3D0), + True, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + # t=3D3: Contact 0 =3D=3D !Down + confident; Contact 1 =3D= =3D Down + confident + # First finger goes up + [ + ( + self.ContactIds(contact_id=3D0, tracking_id=3D-1, = slot_num=3D0), + False, + True, + ), + ( + self.ContactIds(contact_id=3D1, tracking_id=3D1, s= lot_num=3D1), + True, + True, + ), + ], + ], + ) --=20 2.49.0