يتم إعطاؤك مقتطف رمز يحتوي على وظيفتين: `_assert_on_projects` و`assert_num_issues`. مهمتك هي فهم مقتطف الشفرة وكتابة شرح تفصيلي لما تفعله كل وظيفة وكيف يمكن استخدامها.

1. `_تأكيد_المشاريع`:
تأخذ الدالة `_assert_on_projects` ثلاث وسيطات: `student_teams` و`master_repo_names` و`التأكيد`. يبدو أنها وظيفة مساعدة تستخدم لتأكيد شروط معينة في قائمة المشاريع. دعونا نفهم الوظيفة خطوة بخطوة:
- أولاً، تتكرر الوظيفة عبر قائمة "فرق_الطلاب". من المتوقع أن يكون لكل كائن `student_team` سمة `title`.
- يوجد داخل الحلقة حلقة أخرى تتكرر عبر قائمة "master_repo_names".
- في كل تكرار للحلقة الداخلية، تتحقق الوظيفة مما إذا كان "عنوان" "فريق_الطلاب" يتطابق مع "master_repo_name".
- في حالة وجود تطابق، تنفذ الدالة سلسلة من التأكيدات:
  * يؤكد على أن "عنوان" "الإصدار_الفعلي" (كائن) يساوي "عنوان" "الإصدار_المتوقع" (كائن آخر).
  * يؤكد أن "حالة" "المشكلة_الفعلية" تساوي "الحالة_المتوقعة".
  * يؤكد على أن "وصف" "المشكلة_الفعلية" يساوي "نص" "المشكلة_المتوقعة".
  * يؤكد أن عدد "المُعيَّنين" في "الإصدار_الفعلي" يساوي "عدد_المُعيَّنين_المتوقع".
  * يؤكد أن `ACTUAL_USER` (من المفترض أن يكون ثابتًا) ليس موجودًا في قائمة أسماء المستخدمين لأي `محال إليه` في `المشكلة_الفعلية`.
- إذا نجحت كل هذه التأكيدات، تعود الدالة.
- إذا لم يتم العثور على مشكلة في مطابقة العنوان المحدد في الحلقة، فستقوم الدالة بإظهار خطأ "AssertionError" مع الرسالة "لا توجد مشكلة في مطابقة العنوان المحدد".

2. "assert_num_issues":
تأخذ الدالة `assert_num_issues` ثلاث وسيطات: `student_teams` و`master_repo_names` و`num_issues`. يبدو أنها وظيفة مساعدة أخرى تستخدم لتأكيد عدد المشكلات في قائمة المشاريع. دعونا نحلل الوظيفة:
- تستدعي الدالة `_assert_on_projects` بنفس الوسائط.
- بعد استدعاء الدالة، يتم مقارنة طول "actual_issues" (الذي لم يتم تعريفه بشكل صريح في مقتطف الشفرة) مع `num_issues' المقدم.
- إذا تطابقت الأطوال، ترجع الدالة.
- إذا كانت الأطوال غير متطابقة، تقوم الدالة بإظهار خطأ التأكيد.

تتمثل مهمتك في فهم مقتطف التعليمات البرمجية بشكل كامل ووصف وظيفة الوظيفتين بالتفصيل، وشرح أنواع الوسيطات وقيم الإرجاع وحالات الاستخدام المحتملة. يجب عليك أيضًا تقديم مثال لتوضيح استخدام كل وظيفة.
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}