<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D8%AF%D9%88%D9%83_%D8%AA%D9%8A%D8%B3%D8%AA</id>
	<title>دوك تيست - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D8%AF%D9%88%D9%83_%D8%AA%D9%8A%D8%B3%D8%AA"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D8%AF%D9%88%D9%83_%D8%AA%D9%8A%D8%B3%D8%AA&amp;action=history"/>
	<updated>2026-06-08T13:47:00Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D8%AF%D9%88%D9%83_%D8%AA%D9%8A%D8%B3%D8%AA&amp;diff=3284493&amp;oldid=prev</id>
		<title>عبد العزيز: بوت: إصلاح التحويلات</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D8%AF%D9%88%D9%83_%D8%AA%D9%8A%D8%B3%D8%AA&amp;diff=3284493&amp;oldid=prev"/>
		<updated>2022-12-04T22:12:18Z</updated>

		<summary type="html">&lt;p&gt;بوت: إصلاح التحويلات&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{مقالة غير مراجعة|تاريخ = أكتوبر 2020}}&lt;br /&gt;
{{لا مصدر|تاريخ=أكتوبر 2020}}&lt;br /&gt;
{{يتيمة|تاريخ=أكتوبر 2020}}&lt;br /&gt;
دوك تيست هو عبارة عن عنصر في المكتبة القياسيه في [[لغة برمجة|لغة البرمجة]] [[بايثون (لغة برمجة)|بايثون]]&lt;br /&gt;
واللتي تتيح عمل اختبارات بطريقه سهله وسلسله بناءا على المخرجات من قشرة المترجم أو [[مفسر (برمجة)|المفسر]] تٌقص وتلصق إلى سلاسل ال دوك.&lt;br /&gt;
== محددات التنفيذ ==&lt;br /&gt;
ال دوك تيست يقوم باستخدام امكانيات البايثون الاتيه بطريقه مبتكره.&lt;br /&gt;
* سلاسل ال دوت&lt;br /&gt;
* قشره البايثون التفاعلية&lt;br /&gt;
* تفتيش البايثون العميق أو الدقيق&lt;br /&gt;
&lt;br /&gt;
عند استخدام البايثون، الحث الأول يتبع بالاوامر الجديده. والثاني عند تكمله الاوامر على عده اسطر ونتيجه تنفيذ الاوامر من المتوقع ان تكون على الاسطر التاليه سطر خالٍ، أو سطر اخر يبدأ بالحث الأول يرى بأنه المُخرج من الأمر&lt;br /&gt;
ال دوك تيست يبحث عن الحث في متسلسلاته ويعيد تشغيل الاوامر المشتقه ويقارن النتيجة ب المخرجات المعطاة في امثله اختبار متلسلسلات الدوت الاجراء الافتراضي عند نجاح الاختبار هو ان لا يكون هنالك أي مخرج ويمكن تعديل هذا الخيار في مُشغل الدوك تيست. اضافه إلى ذلك أصبح الدوك تيست متكاملا مع عنصر اختبار الوحدة مما جعله مقياس معياري للوحد. مقياس الوحد يعطي خيارات اضافية عند إجراء الاختبرات مثل اعطاء تقارير ب احصائيات الاختبارات كنجاحه وفشله.&lt;br /&gt;
&lt;br /&gt;
== البرمجة الحرفية والدوك نيست ==&lt;br /&gt;
&lt;br /&gt;
على الرغم ان الدوك تيست لا يسمح لبرنامج البايثون ان يندمج باللغة اليومية الا انه يسمح للامثله الموثقه ان تندمج في ال دوك سترينج حيث يمكنها ان تحتوي اشكال أخرى من النصوص ويمكن إنشاء ملفات يمكن ان تحتوي على مستندات، واختبارات والبرنامج طبعا مما يساعد الاختبار على تويقه والذي يسهل التلاحم بين الاختبار والبرنامج والمستند.&lt;br /&gt;
&lt;br /&gt;
== توثيق المكتبات عن طريق الامثله ==&lt;br /&gt;
الدوك تيست ملائم لاعطاء مقدمة للمكتبة من خلال التزويد كيف تعمل [[واجهة برمجة التطبيقات|واجهه برمجه التطبيقات]]&lt;br /&gt;
بناءا على اساسات نتائج مترجم البايثون التفاعلي، يمكن دمج النص بالاختبار وتجربته على المكتبة لتحقيق النتائج المطلوبة&lt;br /&gt;
== الامثلة ==&lt;br /&gt;
&lt;br /&gt;
المثال الأول: دوك تيست مدمج بمتسلسلات الدوك الخاصة ب داله&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def list_to_0_index(lst):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;A solution to the problem given in:&lt;br /&gt;
    https://rgrig.blogspot.com/2005/11/writing-readable-code.html&lt;br /&gt;
&lt;br /&gt;
    &amp;#039;Given a list, lst, say for each element the 0-index where it appears for&lt;br /&gt;
    the first time. So the list x = [0, 1, 4, 2, 4, 1, 0, 2] is&lt;br /&gt;
    transformed into y = [0, 1, 2, 3, 2, 1, 0, 3]. Notice that for all&lt;br /&gt;
    i we have x[y[i]] = x[i]. Use any programming language and any data&lt;br /&gt;
    representation you want.&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; x = [0, 1, 4, 2, 4, 1, 0, 2]&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; list_to_0_index(x)&lt;br /&gt;
    [0, 1, 2, 3, 2, 1, 0, 3]&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return [lst.index(i) for i in lst]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
المثال الثاني: دمج الدوك تيست بملف نص عادي&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pycon&amp;quot;&amp;gt;&lt;br /&gt;
======================&lt;br /&gt;
Demonstration doctests&lt;br /&gt;
======================&lt;br /&gt;
&lt;br /&gt;
This is just an example of what a README text looks like that can be used with&lt;br /&gt;
the doctest.DocFileSuite() function from Python&amp;#039;s doctest module.&lt;br /&gt;
&lt;br /&gt;
Normally, the README file would explain the API of the module, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = 1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; b = 2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a + b&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
Notice, that we just demonstrated how to add two numbers in Python, and&lt;br /&gt;
what the result will look like.&lt;br /&gt;
&lt;br /&gt;
A special option allows you to be somewhat fuzzy about your examples:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; o = object()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; o # doctest: +ELLIPSIS&lt;br /&gt;
&amp;lt;object object at 0x...&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exceptions can be tested very nicely too:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
 ...&lt;br /&gt;
NameError: name &amp;#039;x&amp;#039; is not defined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
المثال الثالث: كلمات مميزه&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def unique_words(page):&lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;Return set of the unique words in list of lines of text.&lt;br /&gt;
&lt;br /&gt;
    Example:&lt;br /&gt;
&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; from StringIO import StringIO&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; fileText = &amp;quot;&amp;quot;&amp;quot;the cat sat on the mat&lt;br /&gt;
    ... the mat was ondur the cat&lt;br /&gt;
    ... one fish two fish red fish&lt;br /&gt;
    ... blue fish&lt;br /&gt;
    ... This fish has a yellow car&lt;br /&gt;
    ... This fish has a yellow star&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; file = StringIO(fileText)&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; page = file.readlines()&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; words = unique_words(page)&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt; print sorted(list(words))&lt;br /&gt;
    [&amp;quot;This&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;blue&amp;quot;, &amp;quot;car&amp;quot;, &amp;quot;cat&amp;quot;, &amp;quot;fish&amp;quot;, &amp;quot;has&amp;quot;, &amp;quot;mat&amp;quot;,&lt;br /&gt;
     &amp;quot;on&amp;quot;, &amp;quot;ondur&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;red&amp;quot;, &amp;quot;sat&amp;quot;, &amp;quot;star&amp;quot;, &amp;quot;the&amp;quot;, &amp;quot;two&amp;quot;,&lt;br /&gt;
     &amp;quot;was&amp;quot;, &amp;quot;yellow&amp;quot;]&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    return set(word for line in page for word in line.split())&lt;br /&gt;
&lt;br /&gt;
def _test():&lt;br /&gt;
    import doctest&lt;br /&gt;
    doctest.testmod()&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    _test()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== الدوك تيست وتكوين التوثيق ==&lt;br /&gt;
ال [https://en.wikipedia.org/wiki/Epydoc EpyText] وال [https://en.wikipedia.org/wiki/ReStructuredText Docutils] يدعمان صيغه اقسام الدوك تيست في متلسلسلات الدوك&lt;br /&gt;
== التطبيق في لغات البرمجة الأخرى ==&lt;br /&gt;
++C اقرب تطبيق أو تنفيذ ممكن يمكن كتابة الاختبارات مباشرة في كود الإنتاج بأقل قدر من النفقات العامة&lt;br /&gt;
[https://en.wikipedia.org/wiki/Elixir_(programming_language) ExUnit.DocT] مشابه تماما لل دوك تيست&lt;br /&gt;
[https://en.wikipedia.org/wiki/Haskell_(programming_language) Haskell] تطبيق لل دوك تيست&lt;br /&gt;
[https://en.wikipedia.org/wiki/Elm_(programming_language) Elm] كتابة التوثيق&lt;br /&gt;
 [https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] كتابة التوثيق&lt;br /&gt;
== المصادر ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Doctest Doctest]&lt;br /&gt;
{{شريط بوابات|برمجة الحاسوب}}&lt;br /&gt;
[[تصنيف:أدوات اختبار البرمجيات]]&lt;br /&gt;
[[تصنيف:اتصالات تقنية]]&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>