اختبار مفتوح يقيس محرّكات تحويل المبالغ إلى حروف عربية على 52 حالة، كل حالة بقاعدة نحوية مسمّاة.
آخر تشغيل: 2026-09-01 • النتائج مولَّدة آلياً من كود مفتوح
| # | المحرّك | اجتاز | النسبة | مخرَج مكسور |
|---|---|---|---|---|
| 1 | مُتوافِقمحرّكنا — منقول عن نسخة بايثون بـ184 اختباراً، ومُثبت التكافؤ على 540 حالة | 52 / 52 | 100% | — |
| 2 | مُتوافِق — بناء TypeScript المشحونالبناء المشحون فعلاً (arabic-invoice-mcp-ts/dist) — لا نسخة المصدر. تُفحص هنا عمداً: من ينشر مقياساً للصحّة يبدأ بنفسه | 52 / 52 | 100% | — |
| 3 | sheekprint.comمحرّك أداة طباعة شيكات مجانية مصرية | 11 / 52 | 21.2% | 10 |
التفقيط ليس تجميلاً. في المادة 476 من قانون التجارة المصري رقم 17 لسنة 1999، العبرة عند اختلاف المبلغ المكتوب بالأرقام عن المكتوب بالحروف تكون بالحروف. ومصر وحدها تسوّي نحو 10.6 مليون شيك سنوياً.
ومع ذلك، أغلب محرّكات التفقيط المتاحة تخطئ في قواعد العدد والمعدود — وبعضها
يُخرج undefined على مبالغ أقل من جنيه.
| R1 | المفردالعدد واحد يُذكر بعد المعدود مطابقاً له: «جنيه واحد» لا «واحد جنيه». |
| R2 | المثنىالعدد اثنان يُؤدَّى بصيغة المثنى وحدها: «جنيهان» — ولا يُقال «اثنان جنيه»، فالتثنية تُغني عن العدد. |
| R3 | جمع القلة (3-10)من ثلاثة إلى عشرة: المعدود جمعٌ مجرور، والعدد يخالفه في التذكير والتأنيث. «ثلاثة جنيهات» لا «ثلاثة جنيه». |
| R4 | التمييز المفرد المنصوب (11-99)من أحد عشر إلى تسعة وتسعين: التمييز مفردٌ منصوب. «أحد عشر جنيهاً» لا «أحد عشر جنيه». |
| R5 | التمييز يتبع آخر عدد معطوففي العدد المعطوف يتبع التمييزُ آخرَ جزء مذكور. فـ103 = «مائة وثلاثة جنيهات» بالجمع، لأن آخر عدد فيها ثلاثة. |
| R6 | المائة والألف وما بعدهما — تمييز مفرد مجرورالمائة والألف والمليون تُضاف إلى مفرد مجرور: «مائة جنيه» و«ألف جنيه» — لا «مائة جنيهاً». |
| R7 | إسقاط النون من المثنى عند الإضافةمثنى المائة والألف يُضاف فتسقط نونه: «مئتا جنيه» و«ألفا جنيه» — لا «مائتان جنيه» ولا «ألفان جنيه». |
| R8 | الكسور — مذكر ومؤنثالوحدة الفرعية تُعرب بقواعدها هي. والقرش مذكر، والهللة مؤنثة: «قرشان» و«هللتان». |
| R9 | المنازل العشرية بحسب العملةالدينار الكويتي والبحريني والريال العُماني ثلاث منازل (1000 وحدة فرعية). فـ0.750 ديناراً = «سبعمائة وخمسون فلساً» لا «خمسة وسبعون». |
| R10 | سلامة المخرَجلا يجوز أن يُخرج المحرّك قيمة غير معرّفة أو نصاً مكسوراً على مبلغ صحيح — فالشيك مستند مالي. |
| المبلغ | القاعدة | الصواب | الناتج |
|---|---|---|---|
| 1 EGP | R1 | جنيه واحد | فقط واحد جنيهاً لا غير |
| 2 EGP | R2 | جنيهان | فقط اثنان جنيهاً لا غير |
| 12 EGP | R4 | اثنا عشر جنيهاً | فقط أثني عشر جنيهاً لا غير |
| 100 EGP | R6 | مائة جنيه | فقط مائة جنيهاً لا غير |
| 103 EGP | R5 | مائة وثلاثة جنيهات | فقط مائة وثلاثة جنيهاً لا غير |
| 105 EGP | R5 | مائة وخمسة جنيهات | فقط مائة وخمسة جنيهاً لا غير |
| 200 EGP | R7 | مئتا جنيه | فقط مائتان جنيهاً لا غير |
| 300 EGP | R6 | ثلاثمائة جنيه | فقط ثلاثمائة جنيهاً لا غير |
| 1,000 EGP | R6 | ألف جنيه | فقط ألف جنيهاً لا غير |
| 2,000 EGP | R7 | ألفا جنيه | فقط ألفان جنيهاً لا غير |
| 3,000 EGP | R3 | ثلاثة آلاف جنيه | فقط ثلاثة ألآف جنيهاً لا غير |
| 10,000 EGP | R3 | عشرة آلاف جنيه | فقط عشرة ألآف جنيهاً لا غير |
| 11,000 EGP | R6 | أحد عشر ألف جنيه | فقط أحد عشر ألف جنيهاً لا غير |
| 200,000 EGP | R7 | مئتا ألف جنيه | فقط مائتان ألف جنيهاً لا غير |
| 1,000,000 EGP | R6 | مليون جنيه | فقط مليون جنيهاً لا غير |
| 2,000,000 EGP | R7 | مليونا جنيه | فقط مليونان جنيهاً لا غير |
| 3,000,000 EGP | R3 | ثلاثة ملايين جنيه | فقط ثلاثة ملايين جنيهاً لا غير |
| 0.01 EGP | R8 | قرش واحد | فقط undefined جنيهاً وواحد قرش لا غير |
| 0.02 EGP | R8 | قرشان | فقط undefined جنيهاً واثنان قرش لا غير |
| 0.03 EGP | R8 | ثلاثة قروش | فقط undefined جنيهاً وثلاثة قرش لا غير |
| 0.05 EGP | R8 | خمسة قروش | فقط undefined جنيهاً وخمسة قرش لا غير |
| 1.05 EGP | R8 | جنيه واحد وخمسة قروش | فقط واحد جنيهاً وخمسة قرش لا غير |
| 0.25 EGP | R8 | خمسة وعشرون قرشاً | فقط undefined جنيهاً وخمسة وعشرون قرش لا غير |
| 0.5 EGP | R10 | خمسون قرشاً | فقط undefined جنيهاً وخمسون قرش لا غير |
| 0.75 EGP | R8 | خمسة وسبعون قرشاً | فقط undefined جنيهاً وخمسة وسبعون قرش لا غير |
| 0.99 EGP | R8 | تسعة وتسعون قرشاً | فقط undefined جنيهاً وتسعة وتسعون قرش لا غير |
| 1.5 EGP | R1 | جنيه واحد وخمسون قرشاً | فقط واحد جنيهاً وخمسون قرش لا غير |
| 2.02 EGP | R2 | جنيهان وقرشان | فقط اثنان جنيهاً واثنان قرش لا غير |
| 11.11 EGP | R4 | أحد عشر جنيهاً وأحد عشر قرشاً | فقط أحد عشر جنيهاً وأحد عشر قرش لا غير |
| 100.5 EGP | R6 | مائة جنيه وخمسون قرشاً | فقط مائة جنيهاً وخمسون قرش لا غير |
| 103.25 EGP | R5 | مائة وثلاثة جنيهات وخمسة وعشرون قرشاً | فقط مائة وثلاثة جنيهاً وخمسة وعشرون قرش لا غير |
| 200.75 EGP | R7 | مئتا جنيه وخمسة وسبعون قرشاً | فقط مائتان جنيهاً وخمسة وسبعون قرش لا غير |
| 1,250.75 EGP | R4 | ألف ومئتان وخمسون جنيهاً وخمسة وسبعون قرشاً | فقط ألف ومائتان وخمسون جنيهاً وخمسة وسبعون قرش لا غير |
| 2,000.5 EGP | R7 | ألفا جنيه وخمسون قرشاً | فقط ألفان جنيهاً وخمسون قرش لا غير |
| 9,876,543.21 EGP | R4 | تسعة ملايين وثمانمائة وستة وسبعون ألف وخمسمائة وثلاثة وأربعون جنيهاً وواحد وعشرون قرشاً | فقط تسعة ملايين وثمانمائة وستة وسبعون ألف وخمسمائة وثلاثة وأربعون جنيهاً وواحد وعشرون قرش لا غير |
| 2 SAR | R2 | ريالان | فقط اثنان ريال سعودي لا غير |
| 0.02 SAR | R8 | هللتان | فقط undefined ريال سعودي واثنان هللة لا غير |
| 103 SAR | R5 | مائة وثلاثة ريالات | فقط مائة وثلاثة ريال سعودي لا غير |
| 150.75 KWD | R9 | مائة وخمسون ديناراً وسبعمائة وخمسون فلساً | فقط مائة وخمسون دينار كويتي وخمسة وسبعون فلس لا غير |
| 3 KWD | R3 | ثلاثة دنانير | فقط ثلاثة دنانير كويتية لا غير |
| 0.75 OMR | R9 | سبعمائة وخمسون بيسة | undefined |
لا نُسقط محرّكاً على صيغة لا نملك لها حكماً قاطعاً. هذه الحالات لا تدخل في النسب أعلاه، ونعرضها للشفافية.
| 101 | مائة وواحد جنيهاً أم مائة جنيه وجنيه واحد
حين يكون آخر جزء في العدد المعطوف «واحداً»، اختلف النحويون: أيتبع التمييزُ المائةَ فيُجرّ مفرداً، أم العددَ الأخيرَ فيُنصب؟ |
| 1,001 | ألف وواحد جنيهاً أم ألف جنيه وجنيه واحد
نفس الخلاف مع الألف: أتُعامل «ألف وواحد» عدداً واحداً مركّباً له تمييز منصوب، أم يُفصل فيُضاف الألف إلى مفرد مجرور ثم يُعطف عليه المعدود الواحد؟ |
| 102 | مائة واثنان جنيهاً أم مائة جنيه وجنيهان
نفس الخلاف مع المثنى، ويزيده تعقيداً أن التثنية تُغني عن ذكر العدد. |
المقياس كله كود مفتوح. لا تصدّق الجدول — شغّله.
node tafgeet-benchmark/run.mjs --fetch node tafgeet-benchmark/build.mjs
المحرّكات العامة تُجلب مرة واحدة وتُخزَّن محلياً، ولا يُكرَّر الطلب. وكل محرّك يُشغَّل في نطاق معزول، ويُقارَن مخرَجه بعد تطبيع التشكيل والمسافات — دون تطبيع التنوين، فهو موضع الخلاف نفسه.
نعدّ الزيارات بلا كوكيز ولا هوية — عدداً ومساراً لا أكثر. والفاتورةُ التي تكتبها لا تغادر متصفّحك، ولم يتغيّر ذلك.