تقنية

assertCountEqual في بايثون: هل تكفي مجموعة القيم نفسها؟

فشل تساوي التكرارات رغم تساوي الحضور
التكرار. [1] [2]

تساوي الحضور لا يثبت تساوي التكرارات. [1] [2]

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

لا؛ assertCountEqual يفحص عدد مرات ظهور كل قيمة. [1] [2]

  • القائمتان a وb لهما مجموعة القيم نفسها. [1] [2]
  • الأربعة مرتان في a ومرة في b. [1] [2]
  • السبعة مرة في a ومرتان في b. [1] [2]
  • إعادة الترتيب إلى [7,4,4] تنجح. [1] [2]
  • اختبرنا 3.12.14 باستدعاء طرق التأكيد مباشرة. [1] [2]

المثال

from unittest import TestCase
t=TestCase()
a=[4,4,7];b=[4,7,7]
print(set(a)==set(b))
try:
    t.assertCountEqual(a,b)
    print('accepted')
except AssertionError:
    print('AssertionError')
t.assertCountEqual(a,[7,4,4])
print('same counts')

[1] [2]

أي مساواة نختبر؟

المصدر هنا يهمل الترتيب ويحفظ التكرارات. المخرجات True ثم AssertionError ثم same counts. نجاح مقارنة المجموعتين لا يجعل تأكيد الأعداد ناجحًا. [1] [2]

نجاح تساوي التكرارات مع ترتيب مختلف
الترتيب. [1] [2]

النطاق

قارنّا قوائم أعداد مؤلفة؛ لا نشغل مشروع اختبارات أو نثبت هوية أحداث واقعية. الترتيب المختلف لا يغير عدد مرات الظهور في المقارنة الثانية. [1] [2]

المراجع

  1. Python 3.12: assertCountEqual
  2. CPython 3.12.14: unittest/case.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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