تقنية

assertSequenceEqual في بايثون: هل تشترط النوع نفسه؟

assertSequenceEqual; [2,5] vs (2,5); seq_type=None; pass.
الافتراضي يمر.

assertSequenceEqual لا تفرض نوعًا عند seq_type=None؛ يمكن أن يمر تأكيد قائمة وtuple متوافقتين في مثالنا. [1] [2]

الخلاصة السريعة

لا؛ النوع مطلوب عند تحديد seq_type. [1] [2]

  • assertSequenceEqual لا تفرض نوعًا عند seq_type=None؛ يمكن أن يمر تأكيد قائمة وtuple متوافقتين في مثالنا. [1] [2]
  • على CPython 3.12.14، tc=TestCase() وfirst=[2,5] وsecond=(2,5). [1] [2]
  • النداء الافتراضي يمر، رغم أن first==second تعطي False. [1] [2]
  • تحديد seq_type=list مع المدخلين نفسيهما يسبب AssertionError؛ second ليست قائمة. [1] [2]
  • تحكم: reverse=(5,2) تفشل مع first دون تحديد النوع. قبول اختلاف الحاوية لا يلغي ترتيب العناصر؛ نختبر أعدادًا في list وtuple قياسيتين. [1] [2]

شرط النوع

assertSequenceEqual لا تفرض نوعًا عند seq_type=None؛ يمكن أن يمر تأكيد قائمة وtuple متوافقتين في مثالنا. [1] [2]

عناصر متوافقة

على CPython 3.12.14، tc=TestCase() وfirst=[2,5] وsecond=(2,5). [1] [2]

المرور الافتراضي

النداء الافتراضي يمر، رغم أن first==second تعطي False. [1] [2]

from unittest import TestCase tc=TestCase() first=[2,5];second=(2,5) tc.assertSequenceEqual(first,second) print("pass",first==second) [1] [2]

assertSequenceEqual; [2,5] vs (2,5); seq_type=list; AssertionError.
تحديد النوع يرفض.

النوع والترتيب

تحديد seq_type=list مع المدخلين نفسيهما يسبب AssertionError؛ second ليست قائمة. [1] [2]

try:tc.assertSequenceEqual(first,second,seq_type=list) except AssertionError:print("type: AssertionError") reverse=(5,2) try:tc.assertSequenceEqual(first,reverse) except AssertionError:print("order: AssertionError") [1] [2]

تحكم: reverse=(5,2) تفشل مع first دون تحديد النوع. قبول اختلاف الحاوية لا يلغي ترتيب العناصر؛ نختبر أعدادًا في list وtuple قياسيتين. [1] [2]

المراجع

  1. Python assertSequenceEqual
  2. CPython 3.12.14 assertion

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.