2 %
\93\8c\8b\9e ReportLab Generated PDF document http://www.reportlab.com
\r
3 % 'BasicFonts': class PDFDictionary
\r
5 % The standard fonts dictionary
\r
14 % 'F1': class PDFType1Font
\r
17 << /BaseFont /Helvetica
\r
18 /Encoding /WinAnsiEncoding
\r
23 % 'F2': class PDFType1Font
\r
25 % Font Helvetica-BoldOblique
\r
26 << /BaseFont /Helvetica-BoldOblique
\r
27 /Encoding /WinAnsiEncoding
\r
32 % 'F3': class PDFType1Font
\r
34 % Font Helvetica-Bold
\r
35 << /BaseFont /Helvetica-Bold
\r
36 /Encoding /WinAnsiEncoding
\r
41 % 'Annot.NUMBER1': class PDFDictionary
\r
45 /URI (mailto:llucax@gmail.com) >>
\r
56 % 'Annot.NUMBER2': class PDFDictionary
\r
60 /URI (http://blitiri.com.ar/p/bola/) >>
\r
71 % 'F4': class PDFType1Font
\r
73 % Font Helvetica-Oblique
\r
74 << /BaseFont /Helvetica-Oblique
\r
75 /Encoding /WinAnsiEncoding
\r
80 % 'Annot.NUMBER3': class PDFDictionary
\r
84 /URI (http://en.wikipedia.org/wiki/Unit_testing) >>
\r
95 % 'Annot.NUMBER4': class LinkAnnotation
\r
113 % 'Annot.NUMBER5': class LinkAnnotation
\r
131 % 'Annot.NUMBER6': class LinkAnnotation
\r
149 % 'Annot.NUMBER7': class LinkAnnotation
\r
167 % 'Annot.NUMBER8': class LinkAnnotation
\r
185 % 'Annot.NUMBER9': class LinkAnnotation
\r
203 % 'Annot.NUMBER10': class LinkAnnotation
\r
221 % 'Annot.NUMBER11': class LinkAnnotation
\r
239 % 'Annot.NUMBER12': class LinkAnnotation
\r
257 % 'Annot.NUMBER13': class LinkAnnotation
\r
275 % 'Annot.NUMBER14': class LinkAnnotation
\r
293 % 'Annot.NUMBER15': class LinkAnnotation
\r
311 % 'Annot.NUMBER16': class LinkAnnotation
\r
329 % 'Annot.NUMBER17': class LinkAnnotation
\r
347 % 'Annot.NUMBER18': class LinkAnnotation
\r
365 % 'Page1': class PDFPage
\r
392 /Resources << /Font 1 0 R
\r
402 % 'Annot.NUMBER19': class LinkAnnotation
\r
420 % 'Annot.NUMBER20': class LinkAnnotation
\r
438 % 'Annot.NUMBER21': class LinkAnnotation
\r
456 % 'Annot.NUMBER22': class LinkAnnotation
\r
474 % 'Annot.NUMBER23': class LinkAnnotation
\r
492 % 'Annot.NUMBER24': class LinkAnnotation
\r
510 % 'Annot.NUMBER25': class LinkAnnotation
\r
528 % 'Annot.NUMBER26': class LinkAnnotation
\r
546 % 'Annot.NUMBER27': class LinkAnnotation
\r
564 % 'Annot.NUMBER28': class LinkAnnotation
\r
582 % 'Annot.NUMBER29': class LinkAnnotation
\r
600 % 'Annot.NUMBER30': class LinkAnnotation
\r
618 % 'Annot.NUMBER31': class LinkAnnotation
\r
636 % 'Annot.NUMBER32': class LinkAnnotation
\r
654 % 'Annot.NUMBER33': class LinkAnnotation
\r
672 % 'Annot.NUMBER34': class LinkAnnotation
\r
690 % 'Annot.NUMBER35': class LinkAnnotation
\r
708 % 'Annot.NUMBER36': class LinkAnnotation
\r
726 % 'Annot.NUMBER37': class LinkAnnotation
\r
744 % 'Annot.NUMBER38': class LinkAnnotation
\r
762 % 'Annot.NUMBER39': class LinkAnnotation
\r
780 % 'Annot.NUMBER40': class LinkAnnotation
\r
798 % 'Annot.NUMBER41': class LinkAnnotation
\r
816 % 'Annot.NUMBER42': class LinkAnnotation
\r
834 % 'Annot.NUMBER43': class LinkAnnotation
\r
852 % 'Annot.NUMBER44': class LinkAnnotation
\r
870 % 'Annot.NUMBER45': class LinkAnnotation
\r
888 % 'Annot.NUMBER46': class LinkAnnotation
\r
906 % 'Annot.NUMBER47': class LinkAnnotation
\r
924 % 'Annot.NUMBER48': class LinkAnnotation
\r
942 % 'Annot.NUMBER49': class LinkAnnotation
\r
960 % 'Annot.NUMBER50': class LinkAnnotation
\r
978 % 'F5': class PDFType1Font
\r
981 << /BaseFont /Courier
\r
982 /Encoding /WinAnsiEncoding
\r
987 % 'Annot.NUMBER51': class LinkAnnotation
\r
1005 % 'Annot.NUMBER52': class LinkAnnotation
\r
1023 % 'Annot.NUMBER53': class LinkAnnotation
\r
1041 % 'Annot.NUMBER54': class LinkAnnotation
\r
1059 % 'Annot.NUMBER55': class LinkAnnotation
\r
1077 % 'Annot.NUMBER56': class LinkAnnotation
\r
1095 % 'Annot.NUMBER57': class LinkAnnotation
\r
1113 % 'Annot.NUMBER58': class LinkAnnotation
\r
1131 % 'Annot.NUMBER59': class LinkAnnotation
\r
1149 % 'Annot.NUMBER60': class LinkAnnotation
\r
1167 % 'Annot.NUMBER61': class LinkAnnotation
\r
1185 % 'Annot.NUMBER62': class LinkAnnotation
\r
1203 % 'Annot.NUMBER63': class LinkAnnotation
\r
1221 % 'Annot.NUMBER64': class LinkAnnotation
\r
1239 % 'Annot.NUMBER65': class LinkAnnotation
\r
1257 % 'Annot.NUMBER66': class LinkAnnotation
\r
1275 % 'Annot.NUMBER67': class LinkAnnotation
\r
1293 % 'Annot.NUMBER68': class LinkAnnotation
\r
1311 % 'Annot.NUMBER69': class LinkAnnotation
\r
1329 % 'Annot.NUMBER70': class LinkAnnotation
\r
1347 % 'Annot.NUMBER71': class LinkAnnotation
\r
1365 % 'Annot.NUMBER72': class LinkAnnotation
\r
1383 % 'Annot.NUMBER73': class LinkAnnotation
\r
1401 % 'Annot.NUMBER74': class LinkAnnotation
\r
1419 % 'Annot.NUMBER75': class LinkAnnotation
\r
1437 % 'Annot.NUMBER76': class LinkAnnotation
\r
1455 % 'Annot.NUMBER77': class LinkAnnotation
\r
1473 % 'Annot.NUMBER78': class LinkAnnotation
\r
1491 % 'Annot.NUMBER79': class LinkAnnotation
\r
1509 % 'Annot.NUMBER80': class LinkAnnotation
\r
1527 % 'Annot.NUMBER81': class LinkAnnotation
\r
1545 % 'Annot.NUMBER82': class LinkAnnotation
\r
1563 % 'Annot.NUMBER83': class LinkAnnotation
\r
1581 % 'Annot.NUMBER84': class LinkAnnotation
\r
1599 % 'Annot.NUMBER85': class PDFDictionary
\r
1603 /URI (http://proj.llucax.com.ar/home/mutest/releases/mutest.tar.gz) >>
\r
1614 % 'Annot.NUMBER86': class PDFDictionary
\r
1618 /URI (http://proj.llucax.com.ar/home/mutest/releases/) >>
\r
1629 % 'Annot.NUMBER87': class PDFDictionary
\r
1633 /URI (http://git.or.cz/) >>
\r
1644 % 'Annot.NUMBER88': class PDFDictionary
\r
1648 /URI (http://git.llucax.com.ar/w/software/mutest.git) >>
\r
1659 % 'Annot.NUMBER89': class PDFDictionary
\r
1663 /URI (http://git.llucax.com.ar/w/software/mutest.git) >>
\r
1674 % 'Annot.NUMBER90': class PDFDictionary
\r
1678 /URI (http://proj.llucax.com.ar/home/mutest/manual.html) >>
\r
1689 % 'Annot.NUMBER91': class PDFDictionary
\r
1693 /URI (http://proj.llucax.com.ar/home/mutest/manual.pdf) >>
\r
1704 % 'Page2': class PDFPage
\r
1707 << /Annots [ 25 0 R
\r
1786 /Resources << /Font 1 0 R
\r
1796 % 'Annot.NUMBER92': class LinkAnnotation
\r
1814 % 'Annot.NUMBER93': class PDFDictionary
\r
1818 /URI (http://git.llucax.com.ar/w/software/mutest.git?a=tree;f=sample;h=d8ad4dd9c3428fef5963107c82ab6a5e34ec6e00;hb=HEAD) >>
\r
1829 % 'Annot.NUMBER94': class LinkAnnotation
\r
1847 % 'Annot.NUMBER95': class LinkAnnotation
\r
1865 % 'Annot.NUMBER96': class LinkAnnotation
\r
1883 % 'Annot.NUMBER97': class LinkAnnotation
\r
1901 % 'Annot.NUMBER98': class LinkAnnotation
\r
1919 % 'Annot.NUMBER99': class LinkAnnotation
\r
1937 % 'Page3': class PDFPage
\r
1940 << /Annots [ 100 0 R
\r
1954 /Resources << /Font 1 0 R
\r
1964 % 'Page4': class PDFPage
\r
1967 << /Contents 258 0 R
\r
1973 /Resources << /Font 1 0 R
\r
1983 % 'Annot.NUMBER100': class LinkAnnotation
\r
2001 % 'Annot.NUMBER101': class LinkAnnotation
\r
2019 % 'Annot.NUMBER102': class LinkAnnotation
\r
2037 % 'Annot.NUMBER103': class LinkAnnotation
\r
2055 % 'Annot.NUMBER104': class LinkAnnotation
\r
2073 % 'Annot.NUMBER105': class LinkAnnotation
\r
2091 % 'Annot.NUMBER106': class LinkAnnotation
\r
2109 % 'Annot.NUMBER107': class LinkAnnotation
\r
2127 % 'Annot.NUMBER108': class LinkAnnotation
\r
2145 % 'Page5': class PDFPage
\r
2148 << /Annots [ 110 0 R
\r
2163 /Resources << /Font 1 0 R
\r
2173 % 'Annot.NUMBER109': class LinkAnnotation
\r
2191 % 'Annot.NUMBER110': class LinkAnnotation
\r
2209 % 'Annot.NUMBER111': class LinkAnnotation
\r
2227 % 'Annot.NUMBER112': class LinkAnnotation
\r
2245 % 'Annot.NUMBER113': class LinkAnnotation
\r
2263 % 'Annot.NUMBER114': class LinkAnnotation
\r
2281 % 'Annot.NUMBER115': class LinkAnnotation
\r
2299 % 'Annot.NUMBER116': class LinkAnnotation
\r
2317 % 'Annot.NUMBER117': class LinkAnnotation
\r
2335 % 'Annot.NUMBER118': class LinkAnnotation
\r
2353 % 'Annot.NUMBER119': class LinkAnnotation
\r
2371 % 'Annot.NUMBER120': class LinkAnnotation
\r
2389 % 'Annot.NUMBER121': class LinkAnnotation
\r
2407 % 'Annot.NUMBER122': class LinkAnnotation
\r
2425 % 'Annot.NUMBER123': class LinkAnnotation
\r
2443 % 'Annot.NUMBER124': class LinkAnnotation
\r
2461 % 'Annot.NUMBER125': class LinkAnnotation
\r
2479 % 'Annot.NUMBER126': class LinkAnnotation
\r
2497 % 'Annot.NUMBER127': class LinkAnnotation
\r
2515 % 'Annot.NUMBER128': class LinkAnnotation
\r
2533 % 'Annot.NUMBER129': class LinkAnnotation
\r
2551 % 'Annot.NUMBER130': class LinkAnnotation
\r
2569 % 'Annot.NUMBER131': class LinkAnnotation
\r
2587 % 'Annot.NUMBER132': class LinkAnnotation
\r
2605 % 'Annot.NUMBER133': class LinkAnnotation
\r
2623 % 'Annot.NUMBER134': class LinkAnnotation
\r
2641 % 'Page6': class PDFPage
\r
2644 << /Annots [ 120 0 R
\r
2676 /Resources << /Font 1 0 R
\r
2686 % 'Annot.NUMBER135': class PDFDictionary
\r
2690 /URI (http://en.wikipedia.org/wiki/Name_mangling) >>
\r
2701 % 'Annot.NUMBER136': class LinkAnnotation
\r
2719 % 'Annot.NUMBER137': class LinkAnnotation
\r
2737 % 'Annot.NUMBER138': class LinkAnnotation
\r
2755 % 'Annot.NUMBER139': class LinkAnnotation
\r
2773 % 'Annot.NUMBER140': class LinkAnnotation
\r
2791 % 'Annot.NUMBER141': class LinkAnnotation
\r
2809 % 'Annot.NUMBER142': class LinkAnnotation
\r
2827 % 'Annot.NUMBER143': class LinkAnnotation
\r
2845 % 'Annot.NUMBER144': class PDFDictionary
\r
2849 /URI (http://www.digitalmars.com/d/) >>
\r
2860 % 'Annot.NUMBER145': class LinkAnnotation
\r
2878 % 'Annot.NUMBER146': class LinkAnnotation
\r
2896 % 'Annot.NUMBER147': class LinkAnnotation
\r
2914 % 'Annot.NUMBER148': class LinkAnnotation
\r
2932 % 'Annot.NUMBER149': class LinkAnnotation
\r
2950 % 'Annot.NUMBER150': class LinkAnnotation
\r
2968 % 'Annot.NUMBER151': class LinkAnnotation
\r
2986 % 'Annot.NUMBER152': class LinkAnnotation
\r
3004 % 'Annot.NUMBER153': class LinkAnnotation
\r
3022 % 'Annot.NUMBER154': class LinkAnnotation
\r
3040 % 'Annot.NUMBER155': class LinkAnnotation
\r
3058 % 'Annot.NUMBER156': class LinkAnnotation
\r
3076 % 'Annot.NUMBER157': class LinkAnnotation
\r
3094 % 'Annot.NUMBER158': class LinkAnnotation
\r
3112 % 'F6': class PDFType1Font
\r
3114 % Font Courier-BoldOblique
\r
3115 << /BaseFont /Courier-BoldOblique
\r
3116 /Encoding /WinAnsiEncoding
\r
3121 % 'Annot.NUMBER159': class LinkAnnotation
\r
3139 % 'Page7': class PDFPage
\r
3142 << /Annots [ 147 0 R
\r
3173 /Resources << /Font 1 0 R
\r
3183 % 'F7': class PDFType1Font
\r
3185 % Font Courier-Bold
\r
3186 << /BaseFont /Courier-Bold
\r
3187 /Encoding /WinAnsiEncoding
\r
3192 % 'Annot.NUMBER160': class LinkAnnotation
\r
3210 % 'Annot.NUMBER161': class LinkAnnotation
\r
3228 % 'Annot.NUMBER162': class LinkAnnotation
\r
3246 % 'Annot.NUMBER163': class LinkAnnotation
\r
3264 % 'Annot.NUMBER164': class LinkAnnotation
\r
3282 % 'Annot.NUMBER165': class LinkAnnotation
\r
3300 % 'Annot.NUMBER166': class LinkAnnotation
\r
3318 % 'Annot.NUMBER167': class LinkAnnotation
\r
3336 % 'Annot.NUMBER168': class PDFDictionary
\r
3340 /URI (http://www.gnu.org/software/binutils/) >>
\r
3351 % 'Annot.NUMBER169': class PDFDictionary
\r
3355 /URI (http://www.gnu.org/software/bash/) >>
\r
3366 % 'Annot.NUMBER170': class LinkAnnotation
\r
3384 % 'Annot.NUMBER171': class LinkAnnotation
\r
3402 % 'Annot.NUMBER172': class LinkAnnotation
\r
3420 % 'Annot.NUMBER173': class LinkAnnotation
\r
3438 % 'Annot.NUMBER174': class LinkAnnotation
\r
3456 % 'Annot.NUMBER175': class LinkAnnotation
\r
3474 % 'Annot.NUMBER176': class LinkAnnotation
\r
3492 % 'Annot.NUMBER177': class LinkAnnotation
\r
3510 % 'Annot.NUMBER178': class LinkAnnotation
\r
3528 % 'Annot.NUMBER179': class LinkAnnotation
\r
3546 % 'Annot.NUMBER180': class LinkAnnotation
\r
3564 % 'Annot.NUMBER181': class LinkAnnotation
\r
3582 % 'Annot.NUMBER182': class LinkAnnotation
\r
3600 % 'Annot.NUMBER183': class PDFDictionary
\r
3604 /URI (http://www.python.org/) >>
\r
3615 % 'Annot.NUMBER184': class PDFDictionary
\r
3619 /URI (http://docs.python.org/library/ctypes.html) >>
\r
3630 % 'Annot.NUMBER185': class LinkAnnotation
\r
3648 % 'Annot.NUMBER186': class LinkAnnotation
\r
3666 % 'Annot.NUMBER187': class LinkAnnotation
\r
3684 % 'Annot.NUMBER188': class LinkAnnotation
\r
3702 % 'Annot.NUMBER189': class LinkAnnotation
\r
3720 % 'Annot.NUMBER190': class LinkAnnotation
\r
3738 % 'Annot.NUMBER191': class LinkAnnotation
\r
3756 % 'Page8': class PDFPage
\r
3759 << /Annots [ 175 0 R
\r
3797 /Resources << /Font 1 0 R
\r
3807 % 'Annot.NUMBER192': class LinkAnnotation
\r
3825 % 'Annot.NUMBER193': class LinkAnnotation
\r
3843 % 'Annot.NUMBER194': class LinkAnnotation
\r
3861 % 'Annot.NUMBER195': class PDFDictionary
\r
3865 /URI (http://www.python.org/) >>
\r
3876 % 'Annot.NUMBER196': class PDFDictionary
\r
3880 /URI (http://www.gnu.org/software/binutils/) >>
\r
3891 % 'Annot.NUMBER197': class LinkAnnotation
\r
3909 % 'Annot.NUMBER198': class LinkAnnotation
\r
3927 % 'Annot.NUMBER199': class LinkAnnotation
\r
3945 % 'Page9': class PDFPage
\r
3948 << /Annots [ 208 0 R
\r
3962 /Resources << /Font 1 0 R
\r
3972 % 'Annot.NUMBER200': class LinkAnnotation
\r
3990 % 'Annot.NUMBER201': class LinkAnnotation
\r
4008 % 'Annot.NUMBER202': class LinkAnnotation
\r
4026 % 'Annot.NUMBER203': class PDFDictionary
\r
4030 /URI (http://docutils.sourceforge.net/rst.html) >>
\r
4041 % 'Page10': class PDFPage
\r
4044 << /Annots [ 217 0 R
\r
4054 /Resources << /Font 1 0 R
\r
4064 % 'R222': class PDFCatalog
\r
4067 << /Outlines 224 0 R
\r
4068 /PageLabels 265 0 R
\r
4069 /PageMode /UseNone
\r
4073 % 'R223': class PDFInfo
\r
4075 << /Author (Leandro Lucarella)
\r
4076 /CreationDate (D:20130217192608-01'00')
\r
4077 /Creator (\(unspecified\))
\r
4079 /Producer (ReportLab PDF Library - www.reportlab.com)
\r
4080 /Subject (\(unspecified\))
\r
4081 /Title (mutest - A simple micro unit testing framework for C) >>
\r
4083 % 'R224': class PDFOutlines
\r
4088 /Type /Outlines >>
\r
4090 % 'Outline.0': class OutlineEntryObject
\r
4099 /Title (\376\377\0001\000.\000\240\000\240\000\240\000I\000n\000s\000t\000a\000l\000l\000a\000t\000i\000o\000n) >>
\r
4101 % 'Outline.1': class OutlineEntryObject
\r
4114 /Title (\376\377\0002\000.\000\240\000\240\000\240\000Q\000u\000i\000c\000k\000 \000S\000a\000m\000p\000l\000e) >>
\r
4116 % 'Outline.30.0': class OutlineEntryObject
\r
4118 << /Dest [ 108 0 R
\r
4125 /Title (\376\377\0002\000.\0001\000.\000\240\000\240\000\240\000f\000a\000c\000t\000o\000r\000i\000a\000l\000.\000c) >>
\r
4127 % 'Outline.30.1': class OutlineEntryObject
\r
4129 << /Dest [ 109 0 R
\r
4137 /Title (\376\377\0002\000.\0002\000.\000\240\000\240\000\240\000f\000a\000c\000t\000o\000r\000i\000a\000l\000_\000t\000e\000s\000t\000.\000c) >>
\r
4139 % 'Outline.30.2': class OutlineEntryObject
\r
4141 << /Dest [ 119 0 R
\r
4148 /Title (\376\377\0002\000.\0003\000.\000\240\000\240\000\240\000e\000x\000c\000e\000p\000t\000i\000o\000n\000_\000t\000e\000s\000t\000.\000c\000p\000p) >>
\r
4150 % 'Outline.2': class OutlineEntryObject
\r
4163 /Title (\376\377\0003\000.\000\240\000\240\000\240\000C\000o\000n\000c\000e\000p\000t\000s) >>
\r
4165 % 'Outline.31.0': class OutlineEntryObject
\r
4167 << /Dest [ 119 0 R
\r
4174 /Title (\376\377\0003\000.\0001\000.\000\240\000\240\000\240\000T\000e\000s\000t\000 \000P\000r\000o\000g\000r\000a\000m) >>
\r
4176 % 'Outline.31.1': class OutlineEntryObject
\r
4178 << /Dest [ 146 0 R
\r
4186 /Title (\376\377\0003\000.\0002\000.\000\240\000\240\000\240\000T\000e\000s\000t\000 \000S\000u\000i\000t\000e) >>
\r
4188 % 'Outline.31.2': class OutlineEntryObject
\r
4190 << /Dest [ 146 0 R
\r
4198 /Title (\376\377\0003\000.\0003\000.\000\240\000\240\000\240\000T\000e\000s\000t\000 \000C\000a\000s\000e) >>
\r
4200 % 'Outline.31.3': class OutlineEntryObject
\r
4202 << /Dest [ 146 0 R
\r
4210 /Title (\376\377\0003\000.\0004\000.\000\240\000\240\000\240\000C\000h\000e\000c\000k\000s) >>
\r
4212 % 'Outline.31.4': class OutlineEntryObject
\r
4214 << /Dest [ 146 0 R
\r
4222 /Title (\376\377\0003\000.\0005\000.\000\240\000\240\000\240\000I\000n\000i\000t\000i\000a\000l\000i\000z\000a\000t\000i\000o\000n) >>
\r
4224 % 'Outline.31.5': class OutlineEntryObject
\r
4226 << /Dest [ 146 0 R
\r
4233 /Title (\376\377\0003\000.\0006\000.\000\240\000\240\000\240\000T\000e\000r\000m\000i\000n\000a\000t\000i\000o\000n) >>
\r
4235 % 'Outline.3': class OutlineEntryObject
\r
4237 << /Dest [ 173 0 R
\r
4245 /Title (\376\377\0004\000.\000\240\000\240\000\240\000C\000+\000+\000 \000S\000u\000p\000p\000o\000r\000t) >>
\r
4247 % 'Outline.4': class OutlineEntryObject
\r
4260 /Title (\376\377\0005\000.\000\240\000\240\000\240\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000s) >>
\r
4262 % 'Outline.32.0': class OutlineEntryObject
\r
4274 /Title (\376\377\0005\000.\0001\000.\000\240\000\240\000\240\000S\000t\000a\000t\000i\000c\000 \000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000s) >>
\r
4276 % 'Outline.33.0': class OutlineEntryObject
\r
4287 /Title (\376\377\0005\000.\0001\000.\0001\000.\000\240\000\240\000\240\000C\000 \000i\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n) >>
\r
4289 % 'Outline.34.0': class OutlineEntryObject
\r
4291 << /Dest [ 173 0 R
\r
4298 /Title (\376\377\0005\000.\0001\000.\0001\000.\0001\000.\000\240\000\240\000\240\000m\000k\000m\000u\000t\000e\000s\000t\000 \000I\000n\000v\000o\000c\000a\000t\000i\000o\000n) >>
\r
4300 % 'Outline.34.1': class OutlineEntryObject
\r
4302 << /Dest [ 173 0 R
\r
4310 /Title (\376\377\0005\000.\0001\000.\0001\000.\0002\000.\000\240\000\240\000\240\000T\000e\000s\000t\000 \000P\000r\000o\000g\000r\000a\000m\000 \000I\000n\000v\000o\000c\000a\000t\000i\000o\000n) >>
\r
4312 % 'Outline.34.2': class OutlineEntryObject
\r
4314 << /Dest [ 207 0 R
\r
4321 /Title (\376\377\0005\000.\0001\000.\0001\000.\0003\000.\000\240\000\240\000\240\000D\000e\000p\000e\000n\000d\000e\000n\000c\000i\000e\000s) >>
\r
4323 % 'Outline.32.1': class OutlineEntryObject
\r
4335 /Title (\376\377\0005\000.\0002\000.\000\240\000\240\000\240\000D\000y\000n\000a\000m\000i\000c\000 \000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000s) >>
\r
4337 % 'Outline.35.0': class OutlineEntryObject
\r
4348 /Title (\376\377\0005\000.\0002\000.\0001\000.\000\240\000\240\000\240\000P\000y\000t\000h\000o\000n\000 \000i\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n) >>
\r
4350 % 'Outline.36.0': class OutlineEntryObject
\r
4352 << /Dest [ 207 0 R
\r
4359 /Title (\376\377\0005\000.\0002\000.\0001\000.\0001\000.\000\240\000\240\000\240\000m\000u\000t\000e\000s\000t\000 \000I\000n\000v\000o\000c\000a\000t\000i\000o\000n) >>
\r
4361 % 'Outline.36.1': class OutlineEntryObject
\r
4363 << /Dest [ 216 0 R
\r
4370 /Title (\376\377\0005\000.\0002\000.\0001\000.\0002\000.\000\240\000\240\000\240\000D\000e\000p\000e\000n\000d\000e\000n\000c\000i\000e\000s) >>
\r
4372 % 'Outline.5': class OutlineEntryObject
\r
4385 /Title (\376\377\0006\000.\000\240\000\240\000\240\000R\000e\000f\000e\000r\000e\000n\000c\000e) >>
\r
4387 % 'Outline.37.0': class OutlineEntryObject
\r
4389 << /Dest [ 216 0 R
\r
4396 /Title (\376\377\0006\000.\0001\000.\000\240\000\240\000\240\000m\000u\000_\000c\000h\000e\000c\000k\000\(\000\)) >>
\r
4398 % 'Outline.37.1': class OutlineEntryObject
\r
4400 << /Dest [ 216 0 R
\r
4408 /Title (\376\377\0006\000.\0002\000.\000\240\000\240\000\240\000m\000u\000_\000e\000n\000s\000u\000r\000e\000\(\000\)) >>
\r
4410 % 'Outline.37.2': class OutlineEntryObject
\r
4412 << /Dest [ 221 0 R
\r
4420 /Title (\376\377\0006\000.\0003\000.\000\240\000\240\000\240\000m\000u\000_\000e\000c\000h\000e\000c\000k\000\(\000\)) >>
\r
4422 % 'Outline.37.3': class OutlineEntryObject
\r
4424 << /Dest [ 221 0 R
\r
4431 /Title (\376\377\0006\000.\0004\000.\000\240\000\240\000\240\000m\000u\000_\000e\000e\000n\000s\000u\000r\000e\000\(\000\)) >>
\r
4433 % 'Outline.6': class OutlineEntryObject
\r
4435 << /Dest [ 221 0 R
\r
4442 /Title (\376\377\0007\000.\000\240\000\240\000\240\000A\000b\000o\000u\000t) >>
\r
4444 % 'R254': class PDFPages
\r
4460 % 'R255': class PDFStream
\r
4463 << /Length 4021 >>
\r
4465 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
4467 1 0 0 1 62.69291 717.0236 cm
\r
4469 BT 1 0 0 1 0 28 Tm 11.56488 0 Td 24 TL /F2 20 Tf 0 0 0 rg (mutest ) Tj /F3 20 Tf (- A simple micro unit testing framework) Tj T* 200.05 0 Td (for C) Tj T* -211.6149 0 Td ET
\r
4473 1 0 0 1 62.69291 692.0236 cm
\r
4475 BT /F1 10 Tf 12 TL ET
\r
4480 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 36.93937 0 Td (Author:) Tj T* -36.93937 0 Td ET
\r
4484 1 0 0 1 91.03937 3 cm
\r
4487 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Leandro Lucarella) Tj T* ET
\r
4494 1 0 0 1 62.69291 677.0236 cm
\r
4496 BT /F1 10 Tf 12 TL ET
\r
4501 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 32.48937 0 Td (Contact:) Tj T* -32.48937 0 Td ET
\r
4505 1 0 0 1 91.03937 3 cm
\r
4509 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (llucax@gmail.com) Tj T* ET
\r
4516 1 0 0 1 62.69291 662.0236 cm
\r
4518 BT /F1 10 Tf 12 TL ET
\r
4523 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 33.02937 0 Td (Version:) Tj T* -33.02937 0 Td ET
\r
4527 1 0 0 1 91.03937 3 cm
\r
4530 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (1.0) Tj T* ET
\r
4537 1 0 0 1 62.69291 647.0236 cm
\r
4539 BT /F1 10 Tf 12 TL ET
\r
4544 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 48.03937 0 Td (Date:) Tj T* -48.03937 0 Td ET
\r
4548 1 0 0 1 91.03937 3 cm
\r
4551 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (2013-02-17) Tj T* ET
\r
4558 1 0 0 1 62.69291 632.0236 cm
\r
4560 BT /F1 10 Tf 12 TL ET
\r
4565 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 22.48937 0 Td (Copyright:) Tj T* -22.48937 0 Td ET
\r
4569 1 0 0 1 91.03937 3 cm
\r
4571 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Leandro Lucarella \(2008\), released under the ) Tj 0 0 .501961 rg (BOLA ) Tj 0 0 0 rg (license) Tj T* ET
\r
4578 1 0 0 1 62.69291 605.0236 cm
\r
4580 BT 1 0 0 1 0 2.5 Tm 15 TL /F2 12.5 Tf 0 0 0 rg (Abstract) Tj T* ET
\r
4584 1 0 0 1 62.69291 551.0236 cm
\r
4586 BT 1 0 0 1 0 38 Tm 12 TL /F4 10 Tf 0 0 0 rg (mutest ) Tj /F1 10 Tf (is a micro ) Tj 0 0 .501961 rg (unit testing ) Tj 0 0 0 rg (framework for C \(with some ) Tj 0 0 .501961 rg (C++ support) Tj 0 0 0 rg (\). It's mostly an idea \(it even comes) Tj T* (with 2 ) Tj 0 0 .501961 rg (implementations ) Tj 0 0 0 rg (of the idea!\) with the goal of being easy to use \(just write your ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (grouped) Tj T* (in ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (and you're set\) and so small and simple that you don't mind to copy the files to your project) Tj T* (and just use it \(i.e., no dependencies\).) Tj T* ET
\r
4590 1 0 0 1 62.69291 503.0236 cm
\r
4592 BT 1 0 0 1 0 38 Tm 12 TL /F1 10 Tf 0 0 0 rg (The idea is simple: a source file is a ) Tj 0 0 .501961 rg (test suite) Tj 0 0 0 rg (, a function is a ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (\(special functions can be used for) Tj T* 0 0 .501961 rg (test suite) Tj 0 0 0 rg ( ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (termination) Tj 0 0 0 rg (\), which can can have several ) Tj 0 0 .501961 rg (checks) Tj 0 0 0 rg (. ) Tj 0 0 .501961 rg (Checks ) Tj 0 0 0 rg (comes in 2 flavors,) Tj T* (one that only prints an error, and one that terminates the current ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (too. A \(normally\) automated) Tj T* 0 0 .501961 rg (test program ) Tj 0 0 0 rg (run all the ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (and print some stats. It fails \(returns non-zero\) if any ) Tj 0 0 .501961 rg (test suite ) Tj 0 0 0 rg (fails.) Tj T* ET
\r
4596 1 0 0 1 62.69291 467.0236 cm
\r
4598 BT 1 0 0 1 0 26 Tm 12 TL /F1 10 Tf 0 0 0 rg (<) Tj (div style="width: 220px; height: 270px; float: right; margin-left: 1em; margin-top: 1em") Tj (> <) Tj (iframe) Tj T* (width="220" height="270" style="border: none; outline: none") Tj T* (src="http://tools.flattr.net/widgets/thing.html?thing=1141711") Tj (>) Tj (<) Tj (/iframe) Tj (> <) Tj (/div) Tj (>) Tj T* ET
\r
4604 % 'R256': class PDFStream
\r
4607 << /Length 8831 >>
\r
4609 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
4611 1 0 0 1 62.69291 744.0236 cm
\r
4613 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (Contents) Tj T* ET
\r
4617 1 0 0 1 62.69291 216.0236 cm
\r
4619 BT /F1 10 Tf 12 TL ET
\r
4623 BT 1 0 0 1 0 2 Tm 12 TL /F3 10 Tf 0 0 .501961 rg (1. Installation) Tj T* ET
\r
4627 1 0 0 1 397.8898 507 cm
\r
4631 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 66.44 0 Td (2) Tj T* -66.44 0 Td ET
\r
4637 BT 1 0 0 1 0 2 Tm 12 TL /F3 10 Tf 0 0 .501961 rg (2. Quick Sample) Tj T* ET
\r
4641 1 0 0 1 397.8898 489 cm
\r
4645 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 66.44 0 Td (3) Tj T* -66.44 0 Td ET
\r
4651 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (2.1. factorial.c) Tj T* ET
\r
4655 1 0 0 1 397.8898 471 cm
\r
4659 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (3) Tj T* -66.44 0 Td ET
\r
4665 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (2.2. factorial_test.c) Tj T* ET
\r
4669 1 0 0 1 397.8898 453 cm
\r
4673 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (4) Tj T* -66.44 0 Td ET
\r
4679 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (2.3. exception_test.cpp) Tj T* ET
\r
4683 1 0 0 1 397.8898 435 cm
\r
4687 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (5) Tj T* -66.44 0 Td ET
\r
4693 BT 1 0 0 1 0 2 Tm 12 TL /F3 10 Tf 0 0 .501961 rg (3. Concepts) Tj T* ET
\r
4697 1 0 0 1 397.8898 417 cm
\r
4701 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 66.44 0 Td (5) Tj T* -66.44 0 Td ET
\r
4707 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (3.1. Test Program) Tj T* ET
\r
4711 1 0 0 1 397.8898 399 cm
\r
4715 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (5) Tj T* -66.44 0 Td ET
\r
4721 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (3.2. Test Suite) Tj T* ET
\r
4725 1 0 0 1 397.8898 381 cm
\r
4729 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (6) Tj T* -66.44 0 Td ET
\r
4735 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (3.3. Test Case) Tj T* ET
\r
4739 1 0 0 1 397.8898 363 cm
\r
4743 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (6) Tj T* -66.44 0 Td ET
\r
4749 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (3.4. Checks) Tj T* ET
\r
4753 1 0 0 1 397.8898 345 cm
\r
4757 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (6) Tj T* -66.44 0 Td ET
\r
4763 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (3.5. Initialization) Tj T* ET
\r
4767 1 0 0 1 397.8898 327 cm
\r
4771 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (6) Tj T* -66.44 0 Td ET
\r
4777 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (3.6. Termination) Tj T* ET
\r
4781 1 0 0 1 397.8898 309 cm
\r
4785 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (6) Tj T* -66.44 0 Td ET
\r
4791 BT 1 0 0 1 0 2 Tm 12 TL /F3 10 Tf 0 0 .501961 rg (4. C++ Support) Tj T* ET
\r
4795 1 0 0 1 397.8898 291 cm
\r
4799 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 66.44 0 Td (7) Tj T* -66.44 0 Td ET
\r
4805 BT 1 0 0 1 0 2 Tm 12 TL /F3 10 Tf 0 0 .501961 rg (5. Implementations) Tj T* ET
\r
4809 1 0 0 1 397.8898 273 cm
\r
4813 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 66.44 0 Td (7) Tj T* -66.44 0 Td ET
\r
4819 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.1. Static Implementations) Tj T* ET
\r
4823 1 0 0 1 397.8898 255 cm
\r
4827 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (7) Tj T* -66.44 0 Td ET
\r
4833 BT 1 0 0 1 40 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.1.1. C implementation) Tj T* ET
\r
4837 1 0 0 1 397.8898 237 cm
\r
4841 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (7) Tj T* -66.44 0 Td ET
\r
4847 BT 1 0 0 1 60 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.1.1.1. ) Tj /F5 10 Tf 0 0 0 rg (mkmutest ) Tj /F1 10 Tf 0 0 .501961 rg (Invocation) Tj T* ET
\r
4851 1 0 0 1 397.8898 219 cm
\r
4855 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (7) Tj T* -66.44 0 Td ET
\r
4861 BT 1 0 0 1 60 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.1.1.2. Test Program Invocation) Tj T* ET
\r
4865 1 0 0 1 397.8898 201 cm
\r
4869 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (7) Tj T* -66.44 0 Td ET
\r
4875 BT 1 0 0 1 60 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.1.1.3. Dependencies) Tj T* ET
\r
4879 1 0 0 1 397.8898 183 cm
\r
4883 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (8) Tj T* -66.44 0 Td ET
\r
4889 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.2. Dynamic Implementations) Tj T* ET
\r
4893 1 0 0 1 397.8898 165 cm
\r
4897 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (8) Tj T* -66.44 0 Td ET
\r
4903 BT 1 0 0 1 40 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.2.1. Python implementation) Tj T* ET
\r
4907 1 0 0 1 397.8898 147 cm
\r
4911 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (8) Tj T* -66.44 0 Td ET
\r
4917 BT 1 0 0 1 60 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.2.1.1. ) Tj /F5 10 Tf 0 0 0 rg (mutest ) Tj /F1 10 Tf 0 0 .501961 rg (Invocation) Tj T* ET
\r
4921 1 0 0 1 397.8898 129 cm
\r
4925 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (8) Tj T* -66.44 0 Td ET
\r
4931 BT 1 0 0 1 60 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (5.2.1.2. Dependencies) Tj T* ET
\r
4935 1 0 0 1 397.8898 111 cm
\r
4939 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (9) Tj T* -66.44 0 Td ET
\r
4945 BT 1 0 0 1 0 2 Tm 12 TL /F3 10 Tf 0 0 .501961 rg (6. Reference) Tj T* ET
\r
4949 1 0 0 1 397.8898 93 cm
\r
4953 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 66.44 0 Td (9) Tj T* -66.44 0 Td ET
\r
4959 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (6.1. ) Tj /F5 10 Tf 0 0 0 rg (mu_check\(\)) Tj T* ET
\r
4963 1 0 0 1 397.8898 75 cm
\r
4967 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (9) Tj T* -66.44 0 Td ET
\r
4973 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (6.2. ) Tj /F5 10 Tf 0 0 0 rg (mu_ensure\(\)) Tj T* ET
\r
4977 1 0 0 1 397.8898 57 cm
\r
4981 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (9) Tj T* -66.44 0 Td ET
\r
4987 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (6.3. ) Tj /F5 10 Tf 0 0 0 rg (mu_echeck\(\)) Tj T* ET
\r
4991 1 0 0 1 397.8898 39 cm
\r
4995 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 60.88 0 Td (10) Tj T* -60.88 0 Td ET
\r
5001 BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (6.4. ) Tj /F5 10 Tf 0 0 0 rg (mu_eensure\(\)) Tj T* ET
\r
5005 1 0 0 1 397.8898 21 cm
\r
5009 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 60.88 0 Td (10) Tj T* -60.88 0 Td ET
\r
5015 BT 1 0 0 1 0 2 Tm 12 TL /F3 10 Tf 0 0 .501961 rg (7. About) Tj T* ET
\r
5019 1 0 0 1 397.8898 3 cm
\r
5023 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL 60.88 0 Td (10) Tj T* -60.88 0 Td ET
\r
5030 1 0 0 1 62.69291 183.0236 cm
\r
5032 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (1. Installation) Tj T* ET
\r
5036 1 0 0 1 62.69291 165.0236 cm
\r
5038 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Download the ) Tj 0 0 .501961 rg (latest distribution tarball ) Tj 0 0 0 rg (and uncompress it.) Tj T* ET
\r
5042 1 0 0 1 62.69291 135.0236 cm
\r
5044 BT 1 0 0 1 0 14 Tm 1.279987 Tw 12 TL /F1 10 Tf 0 0 0 rg (You can also download any release from the ) Tj 0 0 .501961 rg (releases directory ) Tj 0 0 0 rg (or get it using ) Tj 0 0 .501961 rg (Git ) Tj 0 0 0 rg (directly from the ) Tj 0 0 .501961 rg (Git) Tj T* 0 Tw (repository) Tj 0 0 0 rg (.) Tj T* ET
\r
5048 1 0 0 1 62.69291 117.0236 cm
\r
5050 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (You can get ) Tj 0 0 .501961 rg (this manual ) Tj 0 0 0 rg (too, or a ) Tj 0 0 .501961 rg (PDF version ) Tj 0 0 0 rg (of it.) Tj T* ET
\r
5054 1 0 0 1 62.69291 99.02362 cm
\r
5056 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (To actually install ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (run:) Tj T* ET
\r
5062 % 'R257': class PDFStream
\r
5065 << /Length 4497 >>
\r
5067 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
5069 1 0 0 1 62.69291 739.8236 cm
\r
5074 1 0 0 1 6.6 6.6 cm
\r
5076 .662745 .662745 .662745 RG
\r
5078 .960784 .960784 .862745 rg
\r
5079 n -6 -6 468.6898 24 re B*
\r
5083 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL ($ make install) Tj T* ET
\r
5090 1 0 0 1 62.69291 707.8236 cm
\r
5092 BT 1 0 0 1 0 14 Tm 1.377674 Tw 12 TL /F1 10 Tf 0 0 0 rg (Default installation path is ) Tj /F5 10 Tf (/usr/local ) Tj /F1 10 Tf (\(because of that, you'll probably need superuser privileges to) Tj T* 0 Tw (install to the default location\). You can override that by passing the ) Tj /F5 10 Tf (prefix ) Tj /F1 10 Tf (make variable, for example:) Tj T* ET
\r
5096 1 0 0 1 62.69291 674.6236 cm
\r
5101 1 0 0 1 6.6 6.6 cm
\r
5103 .662745 .662745 .662745 RG
\r
5105 .960784 .960784 .862745 rg
\r
5106 n -6 -6 468.6898 24 re B*
\r
5110 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL ($ make prefix=/opt/mutest install) Tj T* ET
\r
5117 1 0 0 1 62.69291 654.6236 cm
\r
5120 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (If you want to install just the docs, you can do:) Tj T* ET
\r
5124 1 0 0 1 62.69291 621.4236 cm
\r
5129 1 0 0 1 6.6 6.6 cm
\r
5131 .662745 .662745 .662745 RG
\r
5133 .960784 .960784 .862745 rg
\r
5134 n -6 -6 468.6898 24 re B*
\r
5138 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL ($ make install-doc) Tj T* ET
\r
5145 1 0 0 1 62.69291 601.4236 cm
\r
5147 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Or even ) Tj /F5 10 Tf (install-readme) Tj /F1 10 Tf (, ) Tj /F5 10 Tf (install-html ) Tj /F1 10 Tf (or ) Tj /F5 10 Tf (install-pdf ) Tj /F1 10 Tf (if you are too picky.) Tj T* ET
\r
5151 1 0 0 1 62.69291 571.4236 cm
\r
5153 BT 1 0 0 1 0 14 Tm 1.063318 Tw 12 TL /F1 10 Tf 0 0 0 rg (If you want to install just one particular ) Tj 0 0 .501961 rg (implementation) Tj 0 0 0 rg (, to can use the ) Tj /F5 10 Tf (install-c ) Tj /F1 10 Tf (and ) Tj /F5 10 Tf (install-py) Tj T* 0 Tw /F1 10 Tf (targets.) Tj T* ET
\r
5157 1 0 0 1 62.69291 538.4236 cm
\r
5159 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (2. Quick Sample) Tj T* ET
\r
5163 1 0 0 1 62.69291 520.4236 cm
\r
5165 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (You can find some samples in the ) Tj 0 0 .501961 rg (sample ) Tj 0 0 0 rg (directory.) Tj T* ET
\r
5169 1 0 0 1 62.69291 490.4236 cm
\r
5171 BT 1 0 0 1 0 14 Tm .919985 Tw 12 TL /F1 10 Tf 0 0 0 rg (This is an example taken from there. A simple ) Tj /F4 10 Tf (module ) Tj /F1 10 Tf (called ) Tj 0 0 .501961 rg (factorial.c ) Tj 0 0 0 rg (with its corresponding ) Tj 0 0 .501961 rg (test suite) Tj T* 0 Tw 0 0 0 rg (\() Tj 0 0 .501961 rg (factorial_test.c) Tj 0 0 0 rg (\).) Tj T* ET
\r
5175 1 0 0 1 62.69291 472.4236 cm
\r
5177 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (You can see some ) Tj 0 0 .501961 rg (C++ support ) Tj 0 0 0 rg (in the ) Tj 0 0 .501961 rg (exception_test.cpp) Tj 0 0 0 rg ( ) Tj 0 0 .501961 rg (test suite) Tj 0 0 0 rg (.) Tj T* ET
\r
5181 1 0 0 1 62.69291 442.4236 cm
\r
5183 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (2.1. factorial.c) Tj T* ET
\r
5187 1 0 0 1 62.69291 217.2236 cm
\r
5192 1 0 0 1 6.6 6.6 cm
\r
5194 .662745 .662745 .662745 RG
\r
5196 .960784 .960784 .862745 rg
\r
5197 n -6 -6 468.6898 216 re B*
\r
5200 BT 1 0 0 1 0 194 Tm 12 TL /F1 10 Tf 0 0 0 rg (/*) Tj T* ( * This file is part of mutest, a simple micro unit testing framework for C.) Tj T* ( *) Tj T* ( * mutest was written by Leandro Lucarella ) Tj (<) Tj (llucax@gmail.com) Tj (>) Tj ( and is released) Tj T* ( * under the BOLA license, please see the LICENSE file or visit:) Tj T* ( * http://blitiri.com.ar/p/bola/) Tj T* ( *) Tj T* ( * This is an example module that calculates a factorial.) Tj T* ( *) Tj T* ( * Please, read the README file for more details.) Tj T* ( */) Tj /F5 10 Tf T* T* /F1 10 Tf (unsigned) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj (unsigned) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (x) Tj (\)) Tj /F5 10 Tf ( ) Tj /F1 10 Tf ({) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (if) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (<) Tj (=) Tj /F5 10 Tf ( ) Tj (1) Tj /F1 10 Tf (\)) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (return) Tj /F5 10 Tf ( ) Tj (1) Tj /F1 10 Tf (;) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (return) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (*) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj (x) Tj (-) Tj /F5 10 Tf (1) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* /F1 10 Tf (}) Tj T* ET
\r
5209 % 'R258': class PDFStream
\r
5212 << /Length 4506 >>
\r
5214 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
5216 1 0 0 1 62.69291 747.0236 cm
\r
5218 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (2.2. factorial_test.c) Tj T* ET
\r
5222 1 0 0 1 62.69291 161.8236 cm
\r
5227 1 0 0 1 6.6 6.6 cm
\r
5229 .662745 .662745 .662745 RG
\r
5231 .960784 .960784 .862745 rg
\r
5232 n -6 -6 468.6898 576 re B*
\r
5235 BT 1 0 0 1 0 554 Tm 12 TL /F1 10 Tf 0 0 0 rg (/*) Tj T* ( * This file is part of mutest, a simple micro unit testing framework for C.) Tj T* ( *) Tj T* ( * mutest was written by Leandro Lucarella ) Tj (<) Tj (llucax@gmail.com) Tj (>) Tj ( and is released) Tj T* ( * under the BOLA license, please see the LICENSE file or visit:) Tj T* ( * http://blitiri.com.ar/p/bola/) Tj T* ( *) Tj T* ( * This is the factorial module test suite. Each \(public\) function starting) Tj T* ( * with mu_test will be picked up by mkmutest as a test case.) Tj T* ( *) Tj T* ( * Please, read the README file for more details.) Tj T* ( */) Tj /F5 10 Tf T* T* /F1 10 Tf (#include "factorial.h") Tj T* /F5 10 Tf T* /F1 10 Tf (#include "../mutest.h") Tj T* /F5 10 Tf T* /F1 10 Tf (void) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (mu_test_factorial_zero) Tj (\(\)) Tj /F5 10 Tf ( ) Tj /F1 10 Tf ({) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (unsigned) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (=) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj /F5 10 Tf (0) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (1) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* /F1 10 Tf (}) Tj /F5 10 Tf T* T* /F1 10 Tf (void) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (mu_test_factorial_one) Tj (\(\)) Tj /F5 10 Tf ( ) Tj /F1 10 Tf ({) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (unsigned) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (=) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj /F5 10 Tf (1) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (/* this test is wrong on purpose, to see how it fails */) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (2) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* /F1 10 Tf (}) Tj /F5 10 Tf T* T* /F1 10 Tf (void) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (mu_test_factorial_positive) Tj (\(\)) Tj /F5 10 Tf ( ) Tj /F1 10 Tf ({) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (unsigned) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (=) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj /F5 10 Tf (2) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (/* this test is wrong on purpose, to see how it fails */) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (3) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* T* ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (=) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj /F5 10 Tf (3) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (/* we don't want to continue if this fails, because the next result) Tj T* ( * depends on this one. This one will succeed. */) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (mu_ensure) Tj (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (6) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* T* ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (=) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj (x) Tj (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (720) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* T* ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (=) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj /F5 10 Tf (4) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (mu_ensure) Tj (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (6) Tj /F1 10 Tf (\);) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (/* same as before, but this one will fail. */) Tj /F5 10 Tf T* T* ( ) Tj /F1 10 Tf (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (=) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (factorial) Tj (\() Tj (x) Tj (-) Tj /F5 10 Tf (15) Tj /F1 10 Tf (\);) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (/* and this will never be executed */) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (x) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (362881) Tj /F1 10 Tf (\);) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (/* but if excecuted, will fail */) Tj /F5 10 Tf T* /F1 10 Tf (}) Tj T* ET
\r
5244 % 'R259': class PDFStream
\r
5247 << /Length 5051 >>
\r
5249 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
5251 1 0 0 1 62.69291 747.0236 cm
\r
5253 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (2.3. exception_test.cpp) Tj T* ET
\r
5257 1 0 0 1 62.69291 281.8236 cm
\r
5262 1 0 0 1 6.6 6.6 cm
\r
5264 .662745 .662745 .662745 RG
\r
5266 .960784 .960784 .862745 rg
\r
5267 n -6 -6 468.6898 456 re B*
\r
5270 BT 1 0 0 1 0 434 Tm 12 TL /F1 10 Tf 0 0 0 rg (/*) Tj T* ( * This file is part of mutest, a simple micro unit testing framework for C.) Tj T* ( *) Tj T* ( * mutest was written by Leandro Lucarella ) Tj (<) Tj (llucax@gmail.com) Tj (>) Tj ( and is released) Tj T* ( * under the BOLA license, please see the LICENSE file or visit:) Tj T* ( * http://blitiri.com.ar/p/bola/) Tj T* ( *) Tj T* ( * This is a C++ module test suite. It shows how to use checks involving) Tj T* ( * exceptions.) Tj T* ( *) Tj T* ( * Please, read the README file for more details.) Tj T* ( */) Tj /F5 10 Tf T* T* /F1 10 Tf (#include ) Tj (<) Tj (stdexcept) Tj (>) Tj ( ) Tj (// std::out_of_range) Tj T* (#include ) Tj (<) Tj (vector) Tj (>) Tj ( ) Tj (// std::vector) Tj T* /F5 10 Tf T* /F1 10 Tf (#include "../mutest.h") Tj T* /F5 10 Tf T* /F1 10 Tf (extern) Tj /F5 10 Tf ( ) Tj ("C") Tj ( ) Tj /F1 10 Tf ({) Tj /F5 10 Tf T* T* /F1 10 Tf (void) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (mu_test_exceptions) Tj (\(\)) Tj /F5 10 Tf ( ) Tj /F1 10 Tf ({) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (std) Tj (::) Tj (vector) Tj (<) Tj (int) Tj (>) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (v) Tj (\() Tj /F5 10 Tf (1) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (// ok) Tj T* /F5 10 Tf ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (v) Tj (.) Tj (at) Tj (\() Tj /F5 10 Tf (0) Tj /F1 10 Tf (\)) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (0) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (// throws! This fails) Tj T* /F5 10 Tf ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (v) Tj (.) Tj (at) Tj (\() Tj /F5 10 Tf (1) Tj /F1 10 Tf (\)) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (==) Tj /F5 10 Tf ( ) Tj (0) Tj /F1 10 Tf (\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (// ok, we expect the exception to be thrown, and it does) Tj T* /F5 10 Tf ( ) Tj /F1 10 Tf (mu_echeck) Tj (\() Tj (std) Tj (::) Tj (out_of_range) Tj (,) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (v) Tj (.) Tj (at) Tj (\() Tj /F5 10 Tf (1) Tj /F1 10 Tf (\)\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (// fails! We expect this to throw, but it doesn't) Tj T* /F5 10 Tf ( ) Tj /F1 10 Tf (mu_echeck) Tj (\() Tj (std) Tj (::) Tj (out_of_range) Tj (,) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (v) Tj (.) Tj (at) Tj (\() Tj /F5 10 Tf (0) Tj /F1 10 Tf (\)\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (// fails again, but this time the show is over \(note the "ensure"\)) Tj T* /F5 10 Tf ( ) Tj /F1 10 Tf (mu_eensure) Tj (\() Tj (std) Tj (::) Tj (out_of_range) Tj (,) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (v) Tj (.) Tj (at) Tj (\() Tj /F5 10 Tf (0) Tj /F1 10 Tf (\)\);) Tj /F5 10 Tf T* ( ) Tj /F1 10 Tf (// this will never be executed \(it should fail if it is\)) Tj T* /F5 10 Tf ( ) Tj /F1 10 Tf (mu_check) Tj (\() Tj (v) Tj (.) Tj (empty) Tj (\(\)\);) Tj /F5 10 Tf T* /F1 10 Tf (}) Tj /F5 10 Tf T* T* /F1 10 Tf (}) Tj /F5 10 Tf ( ) Tj /F1 10 Tf (// extern "C") Tj T* ET
\r
5277 1 0 0 1 62.69291 248.8236 cm
\r
5279 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (3. Concepts) Tj T* ET
\r
5283 1 0 0 1 62.69291 218.8236 cm
\r
5285 BT 1 0 0 1 0 14 Tm .475542 Tw 12 TL /F4 10 Tf 0 0 0 rg (mutest ) Tj /F1 10 Tf (is about 4 simple concepts: ) Tj 0 0 .501961 rg (test program) Tj 0 0 0 rg (, ) Tj 0 0 .501961 rg (test suite) Tj 0 0 0 rg (, ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (checks) Tj 0 0 0 rg (. Well, to be honest you) Tj T* 0 Tw (probably will need ) Tj 0 0 .501961 rg (test suite) Tj 0 0 0 rg ( ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (termination ) Tj 0 0 0 rg (too =\)) Tj T* ET
\r
5289 1 0 0 1 62.69291 188.8236 cm
\r
5291 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (3.1. Test Program) Tj T* ET
\r
5295 1 0 0 1 62.69291 134.8236 cm
\r
5297 BT 1 0 0 1 0 38 Tm .090941 Tw 12 TL /F1 10 Tf 0 0 0 rg (A ) Tj /F3 10 Tf (test program ) Tj /F1 10 Tf (is the higher level unit of ) Tj /F4 10 Tf (mutest) Tj /F1 10 Tf (. The test program is the one in charge of running all your) Tj T* 0 Tw .28832 Tw (tests. Probably one of the more important features of ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (is that you are not supposed to bother about) Tj T* 0 Tw .014985 Tw (the test program. So, different ) Tj 0 0 .501961 rg (implementations ) Tj 0 0 0 rg (have different ways to tackle this. Some need more or less) Tj T* 0 Tw (interactions from your part, and each have their pros and cons.) Tj T* ET
\r
5301 1 0 0 1 62.69291 104.8236 cm
\r
5303 BT 1 0 0 1 0 14 Tm .064751 Tw 12 TL /F1 10 Tf 0 0 0 rg (But this is all you need to know for now, for more details see how the test program is implemented by your) Tj T* 0 Tw 0 0 .501961 rg (implementation ) Tj 0 0 0 rg (of choice.) Tj T* ET
\r
5309 % 'R260': class PDFStream
\r
5312 << /Length 7052 >>
\r
5314 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
5316 1 0 0 1 62.69291 747.0236 cm
\r
5318 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (3.2. Test Suite) Tj T* ET
\r
5322 1 0 0 1 62.69291 681.0236 cm
\r
5324 BT 1 0 0 1 0 50 Tm .300444 Tw 12 TL /F1 10 Tf 0 0 0 rg (A ) Tj /F3 10 Tf (test suite ) Tj /F1 10 Tf (is the higher level unit of ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (that you should care about =\). Is not much more than a way) Tj T* 0 Tw 2.145542 Tw (to group ) Tj 0 0 .501961 rg (test cases) Tj 0 0 0 rg (. Code-wise, a test suite is a C \(or C++\) module \(or compilation unit\). Not clear) Tj T* 0 Tw 1.254104 Tw (enough? A unit test is an object file \(could be a shared object depending on the ) Tj 0 0 .501961 rg (implementation) Tj 0 0 0 rg (\). This) Tj T* 0 Tw .308221 Tw (module should have one or more ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (and it could have any number \(including zero\) of ) Tj 0 0 .501961 rg (initialization) Tj T* 0 Tw 0 0 0 rg (and ) Tj 0 0 .501961 rg (termination ) Tj 0 0 0 rg (functions.) Tj T* ET
\r
5328 1 0 0 1 62.69291 651.0236 cm
\r
5330 BT 1 0 0 1 0 14 Tm .012927 Tw 12 TL /F1 10 Tf 0 0 0 rg (A test suite, is inspected by the ) Tj 0 0 .501961 rg (test program ) Tj 0 0 0 rg (for ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (termination ) Tj 0 0 0 rg (functions, and) Tj T* 0 Tw (run them.) Tj T* ET
\r
5334 1 0 0 1 62.69291 621.0236 cm
\r
5336 BT 1 0 0 1 0 14 Tm .370941 Tw 12 TL /F1 10 Tf 0 0 0 rg (A test suite fail if one or more ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (fail, and it's skipped if one or more ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (functions fail \(or,) Tj T* 0 Tw (depending on the implementation, if the test suite can't be loaded at all\).) Tj T* ET
\r
5340 1 0 0 1 62.69291 591.0236 cm
\r
5342 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (3.3. Test Case) Tj T* ET
\r
5346 1 0 0 1 62.69291 561.0236 cm
\r
5348 BT 1 0 0 1 0 14 Tm 1.064724 Tw 12 TL /F1 10 Tf 0 0 0 rg (A ) Tj /F3 10 Tf (test case ) Tj /F1 10 Tf (is just a plain function with a special signature and name. A test case function name must) Tj T* 0 Tw (start with ) Tj /F5 10 Tf (mu_test) Tj /F1 10 Tf (, and take no arguments and return nothing. For example:) Tj T* ET
\r
5352 1 0 0 1 62.69291 527.8236 cm
\r
5357 1 0 0 1 6.6 6.6 cm
\r
5359 .662745 .662745 .662745 RG
\r
5361 .960784 .960784 .862745 rg
\r
5362 n -6 -6 468.6898 24 re B*
\r
5366 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL (void mu_test_something\(void\);) Tj T* ET
\r
5373 1 0 0 1 62.69291 495.8236 cm
\r
5375 BT 1 0 0 1 0 14 Tm .151488 Tw 12 TL /F1 10 Tf 0 0 0 rg (A test case \(probably\) only make sense if it has ) Tj 0 0 .501961 rg (checks) Tj 0 0 0 rg (. A test case succeed only if all its checks succeed) Tj T* 0 Tw (too.) Tj T* ET
\r
5379 1 0 0 1 62.69291 477.8236 cm
\r
5381 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Test are executed in an ) Tj 0 0 .501961 rg (implementation) Tj 0 0 0 rg (-dependant order, but usually the default order is alphabetical.) Tj T* ET
\r
5385 1 0 0 1 62.69291 447.8236 cm
\r
5387 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (3.4. Checks) Tj T* ET
\r
5391 1 0 0 1 62.69291 405.8236 cm
\r
5393 BT 1 0 0 1 0 26 Tm .013516 Tw 12 TL /F1 10 Tf 0 0 0 rg (Checks are assertions that a ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (must pass \(a boolean expression that must evaluate to ) Tj /F4 10 Tf (true) Tj /F1 10 Tf (\). There) Tj T* 0 Tw .094988 Tw (are 2 big flavors of checks: ) Tj /F3 10 Tf (check ) Tj /F1 10 Tf (and ) Tj /F3 10 Tf (ensure) Tj /F1 10 Tf (. ) Tj /F3 10 Tf (check ) Tj /F1 10 Tf (just print an error \(and ) Tj /F4 10 Tf (mark ) Tj /F1 10 Tf (the ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (as failed\)) Tj T* 0 Tw (and ) Tj /F3 10 Tf (ensure ) Tj /F1 10 Tf (halt the ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (execution, jumping to the next one.) Tj T* ET
\r
5397 1 0 0 1 62.69291 375.8236 cm
\r
5399 BT 1 0 0 1 0 14 Tm .242339 Tw 12 TL /F1 10 Tf 0 0 0 rg (For better ) Tj 0 0 .501961 rg (C++ support ) Tj 0 0 0 rg (there are check macros that assert that a specified exception is thrown \(instead of) Tj T* 0 Tw (check for a boolean expression to evaluate to ) Tj /F4 10 Tf (true) Tj /F1 10 Tf (\).) Tj T* ET
\r
5403 1 0 0 1 62.69291 357.8236 cm
\r
5405 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (You can take a look at the ) Tj 0 0 .501961 rg (reference ) Tj 0 0 0 rg (to see the different flavors of check macros in more detail.) Tj T* ET
\r
5409 1 0 0 1 62.69291 327.8236 cm
\r
5411 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (3.5. Initialization) Tj T* ET
\r
5415 1 0 0 1 62.69291 297.8236 cm
\r
5417 BT 1 0 0 1 0 14 Tm .960574 Tw 12 TL /F1 10 Tf 0 0 0 rg (Sometimes you need to setup some environment shared between all the ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (in a ) Tj 0 0 .501961 rg (test suite) Tj 0 0 0 rg (. You) Tj T* 0 Tw (can use ) Tj /F3 10 Tf (initialization functions ) Tj /F1 10 Tf (for this.) Tj T* ET
\r
5421 1 0 0 1 62.69291 255.8236 cm
\r
5423 BT 1 0 0 1 0 26 Tm 1.340542 Tw 12 TL /F1 10 Tf 0 0 0 rg (An initialization function, like a ) Tj 0 0 .501961 rg (test case) Tj 0 0 0 rg (, is a plain C function with a special name and signature. The) Tj T* 0 Tw 2.140574 Tw (name must start with ) Tj /F5 10 Tf (mu_init ) Tj /F1 10 Tf (and it must take no arguments, and return an ) Tj /F4 10 Tf (error code ) Tj /F1 10 Tf (\() Tj /F5 10 Tf (0 ) Tj /F1 10 Tf (being) Tj T* 0 Tw (success\). For example:) Tj T* ET
\r
5427 1 0 0 1 62.69291 222.6236 cm
\r
5432 1 0 0 1 6.6 6.6 cm
\r
5434 .662745 .662745 .662745 RG
\r
5436 .960784 .960784 .862745 rg
\r
5437 n -6 -6 468.6898 24 re B*
\r
5441 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL (int mu_init_something\(void\);) Tj T* ET
\r
5448 1 0 0 1 62.69291 190.6236 cm
\r
5450 BT 1 0 0 1 0 14 Tm .253555 Tw 12 TL /F1 10 Tf 0 0 0 rg (All initialization functions are executed before any ) Tj 0 0 .501961 rg (test case) Tj 0 0 0 rg (, in an ) Tj 0 0 .501961 rg (implementation) Tj 0 0 0 rg (-dependant order, and if) Tj T* 0 Tw (one of them fail \(returns non-zero\), the whole ) Tj 0 0 .501961 rg (test suite ) Tj 0 0 0 rg (is skipped immediately.) Tj T* ET
\r
5454 1 0 0 1 62.69291 160.6236 cm
\r
5456 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (3.6. Termination) Tj T* ET
\r
5460 1 0 0 1 62.69291 130.6236 cm
\r
5462 BT 1 0 0 1 0 14 Tm .359269 Tw 12 TL /F3 10 Tf 0 0 0 rg (Termination functions ) Tj /F1 10 Tf (are just like ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (functions, but they're executed ) Tj /F3 10 Tf (after ) Tj /F1 10 Tf (the ) Tj 0 0 .501961 rg (test cases) Tj 0 0 0 rg (, their) Tj T* 0 Tw (names start with ) Tj /F5 10 Tf (mu_term ) Tj /F1 10 Tf (and they return nothing. For example:) Tj T* ET
\r
5466 1 0 0 1 62.69291 97.42362 cm
\r
5471 1 0 0 1 6.6 6.6 cm
\r
5473 .662745 .662745 .662745 RG
\r
5475 .960784 .960784 .862745 rg
\r
5476 n -6 -6 468.6898 24 re B*
\r
5480 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL (void mu_term_something\(void\);) Tj T* ET
\r
5489 % 'R261': class PDFStream
\r
5492 << /Length 6908 >>
\r
5494 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
5496 1 0 0 1 62.69291 744.0236 cm
\r
5498 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (4. C++ Support) Tj T* ET
\r
5502 1 0 0 1 62.69291 702.0236 cm
\r
5504 BT 1 0 0 1 0 26 Tm .625251 Tw 12 TL /F1 10 Tf 0 0 0 rg (You can use ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (with C++, the only care you must take is that, because of C++ ) Tj 0 0 .501961 rg (name mangling ) Tj 0 0 0 rg (\(and) Tj T* 0 Tw 1.208555 Tw /F4 10 Tf (mutest ) Tj /F1 10 Tf (relaying on function names\), you must declare your ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (termination) Tj T* 0 Tw 0 0 0 rg (functions as ) Tj /F5 10 Tf (extern) Tj ( ) Tj ("C" ) Tj /F1 10 Tf (\(see ) Tj 0 0 .501961 rg (exception_test.cpp ) Tj 0 0 0 rg (for an example\).) Tj T* ET
\r
5508 1 0 0 1 62.69291 660.0236 cm
\r
5510 BT 1 0 0 1 0 26 Tm .386651 Tw 12 TL /F1 10 Tf 0 0 .501961 rg (Checks ) Tj 0 0 0 rg (become ) Tj /F4 10 Tf (exception-safe ) Tj /F1 10 Tf (when using ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (with a C++ compiler, and 2 extra ) Tj 0 0 .501961 rg (checks ) Tj 0 0 0 rg (designed for) Tj T* 0 Tw 1.558443 Tw (C++ get defined \() Tj 0 0 .501961 rg (mu_echeck\(\) ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (mu_eensure\(\)) Tj 0 0 0 rg (\). They assert that an expression throws a particular) Tj T* 0 Tw (exception.) Tj T* ET
\r
5514 1 0 0 1 62.69291 627.0236 cm
\r
5516 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (5. Implementations) Tj T* ET
\r
5520 1 0 0 1 62.69291 609.0236 cm
\r
5522 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (There are 2 big groups of possible implementations that I can think of: ) Tj /F4 10 Tf (static ) Tj /F1 10 Tf (and ) Tj /F4 10 Tf (dynamic) Tj /F1 10 Tf (.) Tj T* ET
\r
5526 1 0 0 1 62.69291 591.0236 cm
\r
5528 BT 1 0 0 1 0 2 Tm 12 TL /F4 10 Tf 0 0 0 rg (mutest ) Tj /F1 10 Tf (comes with one implementation of each group.) Tj T* ET
\r
5532 1 0 0 1 62.69291 561.0236 cm
\r
5534 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (5.1. Static Implementations) Tj T* ET
\r
5538 1 0 0 1 62.69291 519.0236 cm
\r
5540 BT 1 0 0 1 0 26 Tm .398735 Tw 12 TL /F1 10 Tf 0 0 0 rg (Static implementations can be only written in C/C++ \(or other language that is link-compatible with C, like) Tj T* 0 Tw 3.460651 Tw (the ) Tj 0 0 .501961 rg (D Programming Language) Tj 0 0 0 rg (, but since one of the main goals of ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (is avoid unnecessary) Tj T* 0 Tw (dependencies, you probably don't want to depend on an extra language/compiler to run your tests =\).) Tj T* ET
\r
5544 1 0 0 1 62.69291 489.0236 cm
\r
5546 BT 1 0 0 1 0 14 Tm 1.262485 Tw 12 TL /F1 10 Tf 0 0 0 rg (The main advantage is better debugging support, because you can run the ) Tj 0 0 .501961 rg (test program ) Tj 0 0 0 rg (in a standard) Tj T* 0 Tw (debugger and see what happens with ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (very naturally.) Tj T* ET
\r
5550 1 0 0 1 62.69291 447.0236 cm
\r
5552 BT 1 0 0 1 0 26 Tm .439398 Tw 12 TL /F1 10 Tf 0 0 0 rg (The main disadvantage is, the ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (must be figured out in ) Tj /F4 10 Tf (compile-time) Tj /F1 10 Tf (, usually using some kind of) Tj T* 0 Tw .555868 Tw (code generation \(if you want to avoid writing repetitive code yourself\). There's also a limitation in the ) Tj 0 0 .501961 rg (test) Tj T* 0 Tw (case) Tj 0 0 0 rg (, ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (termination ) Tj 0 0 0 rg (functions names: they should be unique for all the ) Tj 0 0 .501961 rg (test program) Tj 0 0 0 rg (.) Tj T* ET
\r
5556 1 0 0 1 62.69291 420.0236 cm
\r
5558 BT 1 0 0 1 0 2.5 Tm 15 TL /F2 12.5 Tf 0 0 0 rg (5.1.1. C implementation) Tj T* ET
\r
5562 1 0 0 1 62.69291 378.0236 cm
\r
5564 BT 1 0 0 1 0 26 Tm .44784 Tw 12 TL /F4 10 Tf 0 0 0 rg (mutest ) Tj /F1 10 Tf (comes with a C static implementation. Only 3 files are needed: ) Tj /F5 10 Tf (mutest.c ) Tj /F1 10 Tf (\(the ) Tj /F4 10 Tf (user-independent) Tj T* 0 Tw 1.39686 Tw /F1 10 Tf (part of the ) Tj 0 0 .501961 rg (test program) Tj 0 0 0 rg (\), ) Tj /F5 10 Tf (mkmutest ) Tj /F1 10 Tf (\(a bash script for generating the ) Tj /F4 10 Tf (user-dependent ) Tj /F1 10 Tf (part of the ) Tj 0 0 .501961 rg (test) Tj T* 0 Tw (program) Tj 0 0 0 rg (\) and ) Tj /F5 10 Tf (mutest.h ) Tj /F1 10 Tf (\(the header file that ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (should include\).) Tj T* ET
\r
5568 1 0 0 1 62.69291 360.0236 cm
\r
5571 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (You can copy this 3 files to your project or install them at system-level and use them globally.) Tj T* ET
\r
5575 1 0 0 1 62.69291 330.0236 cm
\r
5577 BT 1 0 0 1 0 14 Tm 1.415984 Tw 12 TL /F1 10 Tf 0 0 0 rg (The procedure is simple, You should compile you ) Tj 0 0 .501961 rg (test suites) Tj 0 0 0 rg (, ) Tj /F5 10 Tf (mutest.c ) Tj /F1 10 Tf (and the generated output of) Tj T* 0 Tw /F5 10 Tf (mkmutest ) Tj /F1 10 Tf (as object files and link them together.) Tj T* ET
\r
5581 1 0 0 1 62.69291 312.0236 cm
\r
5584 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (For example:) Tj T* ET
\r
5588 1 0 0 1 62.69291 230.8236 cm
\r
5593 1 0 0 1 6.6 6.6 cm
\r
5595 .662745 .662745 .662745 RG
\r
5597 .960784 .960784 .862745 rg
\r
5598 n -6 -6 468.6898 72 re B*
\r
5602 BT 1 0 0 1 0 50 Tm /F5 10 Tf 12 TL ($ cc -c -o mutest.o mutest.c) Tj T* ($ cc -c -o test1.o test1.c) Tj T* ($ cc -c -o test2.o test2.c) Tj T* ($ mkmutest mutest.h test1.o test2.o | cc -xc -c -o runmutest.o -) Tj T* ($ cc -o testprg mutest.o test1.o test2.o runmutest.o) Tj T* ET
\r
5609 1 0 0 1 62.69291 210.8236 cm
\r
5611 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Then you can run the ) Tj 0 0 .501961 rg (test program ) Tj 0 0 0 rg (invoking it with no arguments:) Tj T* ET
\r
5615 1 0 0 1 62.69291 177.6236 cm
\r
5620 1 0 0 1 6.6 6.6 cm
\r
5622 .662745 .662745 .662745 RG
\r
5624 .960784 .960784 .862745 rg
\r
5625 n -6 -6 468.6898 24 re B*
\r
5629 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL ($ ./testprg) Tj T* ET
\r
5636 1 0 0 1 62.69291 153.6236 cm
\r
5638 BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 0 rg (5.1.1.1. ) Tj /F6 10 Tf (mkmutest ) Tj /F2 10 Tf (Invocation) Tj T* ET
\r
5642 1 0 0 1 62.69291 123.6236 cm
\r
5644 BT 1 0 0 1 0 14 Tm 1.715318 Tw 12 TL /F1 10 Tf 0 0 0 rg (This small script take 1 mandatory positional argument: the path to the ) Tj /F5 10 Tf (mutest.h ) Tj /F1 10 Tf (file. All remaining) Tj T* 0 Tw (positional arguments should be object files representing ) Tj 0 0 .501961 rg (test suites) Tj 0 0 0 rg (.) Tj T* ET
\r
5648 1 0 0 1 62.69291 99.62362 cm
\r
5650 BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 0 rg (5.1.1.2. Test Program Invocation) Tj T* ET
\r
5654 1 0 0 1 62.69291 81.62362 cm
\r
5657 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (The test program can be invoked without arguments, but can take some extra options:) Tj T* ET
\r
5663 % 'R262': class PDFStream
\r
5666 << /Length 7873 >>
\r
5668 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
5670 1 0 0 1 62.69291 753.0236 cm
\r
5673 BT 1 0 0 1 0 2 Tm /F7 10 Tf 12 TL (-v) Tj T* ET
\r
5677 1 0 0 1 62.69291 684.0236 cm
\r
5679 BT /F1 10 Tf 12 TL ET
\r
5680 BT 1 0 0 1 0 56 Tm T* ET
\r
5684 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Be verbose. This is accumulative, when you add extra ) Tj /F5 10 Tf (-v ) Tj /F1 10 Tf (you will get extra verbosity.) Tj T* ET
\r
5690 BT 1 0 0 1 0 38 Tm .395542 Tw 12 TL /F1 10 Tf 0 0 0 rg (By default, you just get failed ) Tj 0 0 .501961 rg (checks ) Tj 0 0 0 rg (printed. If you use a single ) Tj /F5 10 Tf (-v) Tj /F1 10 Tf (, a summary of failed/passed ) Tj 0 0 .501961 rg (test) Tj T* 0 Tw .690514 Tw (suites) Tj 0 0 0 rg (, ) Tj 0 0 .501961 rg (test cases ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (checks ) Tj 0 0 0 rg (will be printed. If an extra ) Tj /F5 10 Tf (-v ) Tj /F1 10 Tf (is used, you'll see the current ) Tj 0 0 .501961 rg (test suite) Tj T* 0 Tw .099986 Tw 0 0 0 rg (being executed. Another ) Tj /F5 10 Tf (-v ) Tj /F1 10 Tf (and you'll get the current ) Tj 0 0 .501961 rg (test case) Tj 0 0 0 rg (, and another one, and you'll get each) Tj T* 0 Tw 0 0 .501961 rg (check) Tj 0 0 0 rg (.) Tj T* ET
\r
5697 1 0 0 1 62.69291 660.0236 cm
\r
5699 BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 0 rg (5.1.1.3. Dependencies) Tj T* ET
\r
5703 1 0 0 1 62.69291 642.0236 cm
\r
5706 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Even when dependencies are kept minimal, there always be a few ;\)) Tj T* ET
\r
5710 1 0 0 1 62.69291 624.0236 cm
\r
5713 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (To use this implementation you just need:) Tj T* ET
\r
5717 1 0 0 1 62.69291 618.0236 cm
\r
5720 1 0 0 1 62.69291 618.0236 cm
\r
5723 1 0 0 1 62.69291 606.0236 cm
\r
5725 BT /F1 10 Tf 12 TL ET
\r
5730 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
\r
5737 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (A C compiler \(you already needed that, so...\)) Tj T* ET
\r
5744 1 0 0 1 62.69291 600.0236 cm
\r
5747 1 0 0 1 62.69291 588.0236 cm
\r
5749 BT /F1 10 Tf 12 TL ET
\r
5754 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
\r
5760 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The ) Tj /F5 10 Tf (nm ) Tj /F1 10 Tf (program \(from ) Tj 0 0 .501961 rg (GNU Binutils) Tj 0 0 0 rg (, included in virtually any *NIX\)) Tj T* ET
\r
5767 1 0 0 1 62.69291 582.0236 cm
\r
5770 1 0 0 1 62.69291 570.0236 cm
\r
5772 BT /F1 10 Tf 12 TL ET
\r
5777 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
\r
5783 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The ) Tj 0 0 .501961 rg (GNU Bash ) Tj 0 0 0 rg (shell interpreter \(also included in virtually any *NIX\)) Tj T* ET
\r
5790 1 0 0 1 62.69291 570.0236 cm
\r
5793 1 0 0 1 62.69291 540.0236 cm
\r
5795 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (5.2. Dynamic Implementations) Tj T* ET
\r
5799 1 0 0 1 62.69291 498.0236 cm
\r
5801 BT 1 0 0 1 0 26 Tm .84686 Tw 12 TL /F1 10 Tf 0 0 0 rg (Dynamic implementations, on the other hand, can be written in any language that can access to shared) Tj T* 0 Tw 2.661163 Tw (objects. The idea is to inspect a shared object for ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (and run them, without requiring any) Tj T* 0 Tw (information about ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (at compile time.) Tj T* ET
\r
5805 1 0 0 1 62.69291 432.0236 cm
\r
5807 BT 1 0 0 1 0 50 Tm 1.684983 Tw 12 TL /F1 10 Tf 0 0 0 rg (There are several advantages in this kind of implementations. The dynamic nature let you completely) Tj T* 0 Tw 1.71686 Tw (separate the ) Tj 0 0 .501961 rg (test program ) Tj 0 0 0 rg (from the user-written ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (and you can choose at ) Tj /F4 10 Tf (run-time ) Tj /F1 10 Tf (what ) Tj 0 0 .501961 rg (test) Tj T* 0 Tw .237984 Tw (suites ) Tj 0 0 0 rg (to execute by just selecting the correct shared objects. Also, ) Tj 0 0 .501961 rg (test case) Tj 0 0 0 rg (, ) Tj 0 0 .501961 rg (initialization ) Tj 0 0 0 rg (and ) Tj 0 0 .501961 rg (termination) Tj T* 0 Tw .134431 Tw 0 0 0 rg (functions names only have to be unique in the scope of the ) Tj 0 0 .501961 rg (test suites) Tj 0 0 0 rg (, because ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (are completely) Tj T* 0 Tw (isolated in separate shared objects.) Tj T* ET
\r
5811 1 0 0 1 62.69291 402.0236 cm
\r
5813 BT 1 0 0 1 0 14 Tm .720988 Tw 12 TL /F1 10 Tf 0 0 0 rg (But everything comes at a price, and the higher price to pay is ) Tj /F4 10 Tf (debuggability) Tj /F1 10 Tf (. It's a little harder to plug a) Tj T* 0 Tw (debugger to a shared object.) Tj T* ET
\r
5817 1 0 0 1 62.69291 375.0236 cm
\r
5819 BT 1 0 0 1 0 2.5 Tm 15 TL /F2 12.5 Tf 0 0 0 rg (5.2.1. Python implementation) Tj T* ET
\r
5823 1 0 0 1 62.69291 333.0236 cm
\r
5825 BT 1 0 0 1 0 26 Tm 1.498651 Tw 12 TL /F1 10 Tf 0 0 0 rg (This implementation is much simpler and elegant than the ) Tj 0 0 .501961 rg (C implementation) Tj 0 0 0 rg (. Only 2 files are needed:) Tj T* 0 Tw .951318 Tw /F5 10 Tf (mutest ) Tj /F1 10 Tf (\() Tj 0 0 .501961 rg (test program ) Tj 0 0 0 rg (written in ) Tj 0 0 .501961 rg (Python ) Tj 0 0 0 rg (using ) Tj 0 0 .501961 rg (ctypes ) Tj 0 0 0 rg (module to access the shared object symbols\) and) Tj T* 0 Tw /F5 10 Tf (mutest.h ) Tj /F1 10 Tf (\(the header file that ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (should include\).) Tj T* ET
\r
5829 1 0 0 1 62.69291 303.0236 cm
\r
5831 BT 1 0 0 1 0 14 Tm 2.823059 Tw 12 TL /F1 10 Tf 0 0 0 rg (Since both implementations provided by ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (share the same ) Tj /F5 10 Tf (mutest.h) Tj /F1 10 Tf (, you should define the) Tj T* 0 Tw /F5 10 Tf (MUTEST_PY ) Tj /F1 10 Tf (macro when compiling the ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (if you will run them using this implementation.) Tj T* ET
\r
5835 1 0 0 1 62.69291 273.0236 cm
\r
5837 BT 1 0 0 1 0 14 Tm .452619 Tw 12 TL /F1 10 Tf 0 0 0 rg (As with the ) Tj 0 0 .501961 rg (C implementation) Tj 0 0 0 rg (, you can copy this 2 files to your project or install them at system-level and) Tj T* 0 Tw (use them globally.) Tj T* ET
\r
5841 1 0 0 1 62.69291 243.0236 cm
\r
5843 BT 1 0 0 1 0 14 Tm 1.578735 Tw 12 TL /F1 10 Tf 0 0 0 rg (The procedure is even simpler than the ) Tj 0 0 .501961 rg (C implementation) Tj 0 0 0 rg (: compile and link you ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (as shared) Tj T* 0 Tw (objects and then run the ) Tj /F5 10 Tf (mutest ) Tj /F1 10 Tf (program passing the shared objects as arguments. For example:) Tj T* ET
\r
5847 1 0 0 1 62.69291 161.8236 cm
\r
5852 1 0 0 1 6.6 6.6 cm
\r
5854 .662745 .662745 .662745 RG
\r
5856 .960784 .960784 .862745 rg
\r
5857 n -6 -6 468.6898 72 re B*
\r
5861 BT 1 0 0 1 0 50 Tm /F5 10 Tf 12 TL ($ cc -c -fPIC -DMUTEST_PY -o test1.o test1.c) Tj T* ($ cc -shared -o test1.so test1.o) Tj T* ($ cc -c -fPIC -DMUTEST_PY -o test2.o test2.c) Tj T* ($ cc -shared -o test2.so test2.o) Tj T* ($ mutest test1.so test2.so) Tj T* ET
\r
5868 1 0 0 1 62.69291 141.8236 cm
\r
5871 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (That's it.) Tj T* ET
\r
5875 1 0 0 1 62.69291 117.8236 cm
\r
5877 BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 0 rg (5.2.1.1. ) Tj /F6 10 Tf (mutest ) Tj /F2 10 Tf (Invocation) Tj T* ET
\r
5881 1 0 0 1 62.69291 87.82362 cm
\r
5883 BT 1 0 0 1 0 14 Tm 1.505984 Tw 12 TL /F5 10 Tf 0 0 0 rg (mutest ) Tj /F1 10 Tf (program takes ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (shared objects to run as positional arguments. It accepts the same) Tj T* 0 Tw (options as the ) Tj 0 0 .501961 rg (C implementation's test program ) Tj 0 0 0 rg (and some extra options are accepted too:) Tj T* ET
\r
5889 % 'R263': class PDFStream
\r
5892 << /Length 6814 >>
\r
5894 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
5896 1 0 0 1 62.69291 753.0236 cm
\r
5899 BT 1 0 0 1 0 2 Tm /F7 10 Tf 12 TL (--verbose) Tj T* ET
\r
5903 1 0 0 1 62.69291 738.0236 cm
\r
5905 BT /F1 10 Tf 12 TL ET
\r
5906 BT 1 0 0 1 0 2 Tm T* ET
\r
5910 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Alias for ) Tj /F5 10 Tf (-v) Tj /F1 10 Tf (.) Tj T* ET
\r
5917 1 0 0 1 62.69291 722.0236 cm
\r
5919 BT 1 0 0 1 0 2 Tm 12 TL /F7 10 Tf 0 0 0 rg (-q) Tj /F3 10 Tf (, ) Tj /F7 10 Tf (--quiet) Tj T* ET
\r
5923 1 0 0 1 62.69291 707.0236 cm
\r
5925 BT /F1 10 Tf 12 TL ET
\r
5926 BT 1 0 0 1 0 2 Tm T* ET
\r
5931 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Be quiet \(no output is shown at all\).) Tj T* ET
\r
5938 1 0 0 1 62.69291 691.0236 cm
\r
5940 BT 1 0 0 1 0 2 Tm 12 TL /F7 10 Tf 0 0 0 rg (-s) Tj /F3 10 Tf (, ) Tj /F7 10 Tf (--search) Tj T* ET
\r
5944 1 0 0 1 62.69291 676.0236 cm
\r
5946 BT /F1 10 Tf 12 TL ET
\r
5947 BT 1 0 0 1 0 2 Tm T* ET
\r
5951 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Search for ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (\(*.so\) in the current directory and add them to the list of ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (to run.) Tj T* ET
\r
5958 1 0 0 1 62.69291 660.0236 cm
\r
5960 BT 1 0 0 1 0 2 Tm 12 TL /F7 10 Tf 0 0 0 rg (-h) Tj /F3 10 Tf (, ) Tj /F7 10 Tf (--help) Tj T* ET
\r
5964 1 0 0 1 62.69291 645.0236 cm
\r
5966 BT /F1 10 Tf 12 TL ET
\r
5967 BT 1 0 0 1 0 2 Tm T* ET
\r
5972 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Show a help message and exit.) Tj T* ET
\r
5979 1 0 0 1 62.69291 621.0236 cm
\r
5981 BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 0 rg (5.2.1.2. Dependencies) Tj T* ET
\r
5985 1 0 0 1 62.69291 603.0236 cm
\r
5987 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (As with the ) Tj 0 0 .501961 rg (C implementation) Tj 0 0 0 rg (, some minor dependencies are needed:) Tj T* ET
\r
5991 1 0 0 1 62.69291 597.0236 cm
\r
5994 1 0 0 1 62.69291 597.0236 cm
\r
5997 1 0 0 1 62.69291 585.0236 cm
\r
5999 BT /F1 10 Tf 12 TL ET
\r
6004 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
\r
6010 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Python ) Tj 0 0 0 rg (\(2.5 or later\)) Tj T* ET
\r
6017 1 0 0 1 62.69291 579.0236 cm
\r
6020 1 0 0 1 62.69291 567.0236 cm
\r
6022 BT /F1 10 Tf 12 TL ET
\r
6027 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
\r
6033 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (The ) Tj /F5 10 Tf (nm ) Tj /F1 10 Tf (program \(from ) Tj 0 0 .501961 rg (GNU Binutils) Tj 0 0 0 rg (, included in virtually any *NIX\)) Tj T* ET
\r
6040 1 0 0 1 62.69291 567.0236 cm
\r
6043 1 0 0 1 62.69291 549.0236 cm
\r
6045 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (You will need a C compiler for building the ) Tj 0 0 .501961 rg (test suites ) Tj 0 0 0 rg (too, but technically is not needed by ) Tj /F4 10 Tf (mutest ) Tj /F1 10 Tf (itself ;\)) Tj T* ET
\r
6049 1 0 0 1 62.69291 516.0236 cm
\r
6051 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (6. Reference) Tj T* ET
\r
6055 1 0 0 1 62.69291 486.0236 cm
\r
6057 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (6.1. ) Tj /F7 15 Tf (mu_check\(\)) Tj T* ET
\r
6061 1 0 0 1 62.69291 468.0236 cm
\r
6064 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Synopsis) Tj T* ET
\r
6068 1 0 0 1 62.69291 453.0236 cm
\r
6070 BT /F1 10 Tf 12 TL ET
\r
6071 BT 1 0 0 1 0 2 Tm T* ET
\r
6076 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL (mu_check\(expression\)) Tj T* ET
\r
6083 1 0 0 1 62.69291 437.0236 cm
\r
6086 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Description) Tj T* ET
\r
6090 1 0 0 1 62.69291 422.0236 cm
\r
6092 BT /F1 10 Tf 12 TL ET
\r
6093 BT 1 0 0 1 0 2 Tm T* ET
\r
6097 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Check that the ) Tj /F5 10 Tf (expression ) Tj /F1 10 Tf (evaluates to ) Tj /F4 10 Tf (true) Tj /F1 10 Tf (. Continue with the ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (if fail.) Tj T* ET
\r
6104 1 0 0 1 62.69291 406.0236 cm
\r
6107 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Availability) Tj T* ET
\r
6111 1 0 0 1 62.69291 391.0236 cm
\r
6113 BT /F1 10 Tf 12 TL ET
\r
6114 BT 1 0 0 1 0 2 Tm T* ET
\r
6119 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Always) Tj T* ET
\r
6126 1 0 0 1 62.69291 375.0236 cm
\r
6129 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Example) Tj T* ET
\r
6133 1 0 0 1 62.69291 298.8236 cm
\r
6135 BT /F1 10 Tf 12 TL ET
\r
6136 BT 1 0 0 1 0 63.2 Tm T* ET
\r
6143 1 0 0 1 6.6 6.6 cm
\r
6145 .662745 .662745 .662745 RG
\r
6147 .960784 .960784 .862745 rg
\r
6148 n -6 -6 448.6898 72 re B*
\r
6152 BT 1 0 0 1 0 50 Tm /F5 10 Tf 12 TL (void mu_test\(void\)) Tj T* ({) Tj T* ( mu_check\(5 == 4\); /* fail */) Tj T* ( mu_check\(5 == 5\); /* excecuted, pass */) Tj T* (}) Tj T* ET
\r
6162 1 0 0 1 62.69291 268.8236 cm
\r
6164 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (6.2. ) Tj /F7 15 Tf (mu_ensure\(\)) Tj T* ET
\r
6168 1 0 0 1 62.69291 250.8236 cm
\r
6171 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Synopsis) Tj T* ET
\r
6175 1 0 0 1 62.69291 235.8236 cm
\r
6177 BT /F1 10 Tf 12 TL ET
\r
6178 BT 1 0 0 1 0 2 Tm T* ET
\r
6183 BT 1 0 0 1 0 2 Tm /F5 10 Tf 12 TL (mu_ensure\(expression\)) Tj T* ET
\r
6190 1 0 0 1 62.69291 219.8236 cm
\r
6193 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Description) Tj T* ET
\r
6197 1 0 0 1 62.69291 204.8236 cm
\r
6199 BT /F1 10 Tf 12 TL ET
\r
6200 BT 1 0 0 1 0 2 Tm T* ET
\r
6204 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Check that the ) Tj /F5 10 Tf (expression ) Tj /F1 10 Tf (evaluates to ) Tj /F4 10 Tf (true) Tj /F1 10 Tf (. Interrupt the ) Tj 0 0 .501961 rg (test case ) Tj 0 0 0 rg (if fail.) Tj T* ET
\r
6211 1 0 0 1 62.69291 188.8236 cm
\r
6214 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Availability) Tj T* ET
\r
6218 1 0 0 1 62.69291 173.8236 cm
\r
6220 BT /F1 10 Tf 12 TL ET
\r
6221 BT 1 0 0 1 0 2 Tm T* ET
\r
6226 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Always) Tj T* ET
\r
6233 1 0 0 1 62.69291 157.8236 cm
\r
6236 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Example) Tj T* ET
\r
6240 1 0 0 1 62.69291 81.62362 cm
\r
6242 BT /F1 10 Tf 12 TL ET
\r
6243 BT 1 0 0 1 0 63.2 Tm T* ET
\r
6250 1 0 0 1 6.6 6.6 cm
\r
6252 .662745 .662745 .662745 RG
\r
6254 .960784 .960784 .862745 rg
\r
6255 n -6 -6 448.6898 72 re B*
\r
6259 BT 1 0 0 1 0 50 Tm /F5 10 Tf 12 TL (void mu_test\(void\)) Tj T* ({) Tj T* ( mu_ensure\(5 == 4\); /* fail */) Tj T* ( mu_check\(5 == 5\); /* not excecuted */) Tj T* (}) Tj T* ET
\r
6271 % 'R264': class PDFStream
\r
6274 << /Length 4504 >>
\r
6276 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
\r
6278 1 0 0 1 62.69291 747.0236 cm
\r
6280 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (6.3. ) Tj /F7 15 Tf (mu_echeck\(\)) Tj T* ET
\r
6284 1 0 0 1 62.69291 729.0236 cm
\r
6287 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Synopsis) Tj T* ET
\r
6291 1 0 0 1 62.69291 714.0236 cm
\r
6293 BT /F1 10 Tf 12 TL ET
\r
6294 BT 1 0 0 1 0 2 Tm T* ET
\r
6298 BT 1 0 0 1 0 2 Tm 12 TL /F5 10 Tf 0 0 0 rg (mu_echeck\(class,) Tj ( ) Tj (expression\)) Tj T* ET
\r
6305 1 0 0 1 62.69291 698.0236 cm
\r
6308 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Description) Tj T* ET
\r
6312 1 0 0 1 62.69291 671.0236 cm
\r
6314 BT /F1 10 Tf 12 TL ET
\r
6315 BT 1 0 0 1 0 14 Tm T* ET
\r
6319 BT 1 0 0 1 0 14 Tm 1.408443 Tw 12 TL /F1 10 Tf 0 0 0 rg (Check that the ) Tj /F5 10 Tf (expression ) Tj /F1 10 Tf (throws a specific exception ) Tj /F5 10 Tf (class ) Tj /F1 10 Tf (\(or subclass\). Continue with the) Tj T* 0 Tw 0 0 .501961 rg (test case ) Tj 0 0 0 rg (if fail.) Tj T* ET
\r
6326 1 0 0 1 62.69291 655.0236 cm
\r
6329 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Availability) Tj T* ET
\r
6333 1 0 0 1 62.69291 640.0236 cm
\r
6335 BT /F1 10 Tf 12 TL ET
\r
6336 BT 1 0 0 1 0 2 Tm T* ET
\r
6341 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (C++ only) Tj T* ET
\r
6348 1 0 0 1 62.69291 624.0236 cm
\r
6351 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Example) Tj T* ET
\r
6355 1 0 0 1 62.69291 475.8236 cm
\r
6357 BT /F1 10 Tf 12 TL ET
\r
6358 BT 1 0 0 1 0 135.2 Tm T* ET
\r
6365 1 0 0 1 6.6 6.6 cm
\r
6367 .662745 .662745 .662745 RG
\r
6369 .960784 .960784 .862745 rg
\r
6370 n -6 -6 448.6898 144 re B*
\r
6373 BT 1 0 0 1 0 122 Tm 12 TL /F5 10 Tf 0 0 0 rg (#include ) Tj (<) Tj (stdexcept) Tj (>) Tj T* T* (extern "C") Tj T* ({) Tj T* ( void mu_test\(void\)) Tj T* ( {) Tj T* ( mu_echeck\(std::exception, true\); /* fail */) Tj T* ( mu_echeck\(std::exception,) Tj T* ( throw std::runtime_error\("!"\)\); /* excecuted, pass */) Tj T* ( }) Tj T* (}) Tj T* ET
\r
6383 1 0 0 1 62.69291 445.8236 cm
\r
6385 BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (6.4. ) Tj /F7 15 Tf (mu_eensure\(\)) Tj T* ET
\r
6389 1 0 0 1 62.69291 427.8236 cm
\r
6392 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Synopsis) Tj T* ET
\r
6396 1 0 0 1 62.69291 412.8236 cm
\r
6398 BT /F1 10 Tf 12 TL ET
\r
6399 BT 1 0 0 1 0 2 Tm T* ET
\r
6403 BT 1 0 0 1 0 2 Tm 12 TL /F5 10 Tf 0 0 0 rg (mu_eensure\(class,) Tj ( ) Tj (expression\)) Tj T* ET
\r
6410 1 0 0 1 62.69291 396.8236 cm
\r
6413 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Description) Tj T* ET
\r
6417 1 0 0 1 62.69291 369.8236 cm
\r
6419 BT /F1 10 Tf 12 TL ET
\r
6420 BT 1 0 0 1 0 14 Tm T* ET
\r
6424 BT 1 0 0 1 0 14 Tm 1.749982 Tw 12 TL /F1 10 Tf 0 0 0 rg (Check that the ) Tj /F5 10 Tf (expression ) Tj /F1 10 Tf (throws a specific exception ) Tj /F5 10 Tf (class ) Tj /F1 10 Tf (\(or subclass\). Interrupt the ) Tj 0 0 .501961 rg (test) Tj T* 0 Tw (case ) Tj 0 0 0 rg (if fail.) Tj T* ET
\r
6431 1 0 0 1 62.69291 353.8236 cm
\r
6434 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Availability) Tj T* ET
\r
6438 1 0 0 1 62.69291 338.8236 cm
\r
6440 BT /F1 10 Tf 12 TL ET
\r
6441 BT 1 0 0 1 0 2 Tm T* ET
\r
6446 BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (C++ only) Tj T* ET
\r
6453 1 0 0 1 62.69291 322.8236 cm
\r
6456 BT 1 0 0 1 0 2 Tm /F3 10 Tf 12 TL (Example) Tj T* ET
\r
6460 1 0 0 1 62.69291 174.6236 cm
\r
6462 BT /F1 10 Tf 12 TL ET
\r
6463 BT 1 0 0 1 0 135.2 Tm T* ET
\r
6470 1 0 0 1 6.6 6.6 cm
\r
6472 .662745 .662745 .662745 RG
\r
6474 .960784 .960784 .862745 rg
\r
6475 n -6 -6 448.6898 144 re B*
\r
6478 BT 1 0 0 1 0 122 Tm 12 TL /F5 10 Tf 0 0 0 rg (#include ) Tj (<) Tj (stdexcept) Tj (>) Tj T* T* (extern "C") Tj T* ({) Tj T* ( void mu_test\(void\)) Tj T* ( {) Tj T* ( mu_eensure\(std::exception, true\); /* fail */) Tj T* ( mu_echeck\(std::exception,) Tj T* ( throw std::runtime_error\("!"\)\); /* not excecuted */) Tj T* ( }) Tj T* (}) Tj T* ET
\r
6488 1 0 0 1 62.69291 141.6236 cm
\r
6490 BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (7. About) Tj T* ET
\r
6494 1 0 0 1 62.69291 123.6236 cm
\r
6496 BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (This manual was written using ) Tj 0 0 .501961 rg (reStructuredText) Tj 0 0 0 rg (.) Tj T* ET
\r
6502 % 'R265': class PDFPageLabels
\r
6526 % 'R266': class PDFPageLabel
\r
6532 % 'R267': class PDFPageLabel
\r
6538 % 'R268': class PDFPageLabel
\r
6544 % 'R269': class PDFPageLabel
\r
6550 % 'R270': class PDFPageLabel
\r
6556 % 'R271': class PDFPageLabel
\r
6562 % 'R272': class PDFPageLabel
\r
6568 % 'R273': class PDFPageLabel
\r
6574 % 'R274': class PDFPageLabel
\r
6580 % 'R275': class PDFPageLabel
\r
6588 0000000000 65535 f
\r
6589 0000000113 00000 n
\r
6590 0000000286 00000 n
\r
6591 0000000451 00000 n
\r
6592 0000000640 00000 n
\r
6593 0000000827 00000 n
\r
6594 0000001068 00000 n
\r
6595 0000001303 00000 n
\r
6596 0000001496 00000 n
\r
6597 0000001756 00000 n
\r
6598 0000001998 00000 n
\r
6599 0000002241 00000 n
\r
6600 0000002484 00000 n
\r
6601 0000002727 00000 n
\r
6602 0000002970 00000 n
\r
6603 0000003214 00000 n
\r
6604 0000003458 00000 n
\r
6605 0000003702 00000 n
\r
6606 0000003946 00000 n
\r
6607 0000004190 00000 n
\r
6608 0000004434 00000 n
\r
6609 0000004678 00000 n
\r
6610 0000004922 00000 n
\r
6611 0000005166 00000 n
\r
6612 0000005394 00000 n
\r
6613 0000005862 00000 n
\r
6614 0000006105 00000 n
\r
6615 0000006348 00000 n
\r
6616 0000006592 00000 n
\r
6617 0000006836 00000 n
\r
6618 0000007080 00000 n
\r
6619 0000007324 00000 n
\r
6620 0000007568 00000 n
\r
6621 0000007812 00000 n
\r
6622 0000008056 00000 n
\r
6623 0000008300 00000 n
\r
6624 0000008544 00000 n
\r
6625 0000008788 00000 n
\r
6626 0000009032 00000 n
\r
6627 0000009276 00000 n
\r
6628 0000009520 00000 n
\r
6629 0000009764 00000 n
\r
6630 0000010008 00000 n
\r
6631 0000010252 00000 n
\r
6632 0000010496 00000 n
\r
6633 0000010740 00000 n
\r
6634 0000010984 00000 n
\r
6635 0000011228 00000 n
\r
6636 0000011472 00000 n
\r
6637 0000011716 00000 n
\r
6638 0000011960 00000 n
\r
6639 0000012204 00000 n
\r
6640 0000012448 00000 n
\r
6641 0000012692 00000 n
\r
6642 0000012936 00000 n
\r
6643 0000013180 00000 n
\r
6644 0000013424 00000 n
\r
6645 0000013654 00000 n
\r
6646 0000013830 00000 n
\r
6647 0000014074 00000 n
\r
6648 0000014318 00000 n
\r
6649 0000014562 00000 n
\r
6650 0000014806 00000 n
\r
6651 0000015050 00000 n
\r
6652 0000015294 00000 n
\r
6653 0000015538 00000 n
\r
6654 0000015782 00000 n
\r
6655 0000016026 00000 n
\r
6656 0000016270 00000 n
\r
6657 0000016514 00000 n
\r
6658 0000016758 00000 n
\r
6659 0000017002 00000 n
\r
6660 0000017246 00000 n
\r
6661 0000017490 00000 n
\r
6662 0000017734 00000 n
\r
6663 0000017978 00000 n
\r
6664 0000018222 00000 n
\r
6665 0000018466 00000 n
\r
6666 0000018710 00000 n
\r
6667 0000018954 00000 n
\r
6668 0000019198 00000 n
\r
6669 0000019442 00000 n
\r
6670 0000019686 00000 n
\r
6671 0000019930 00000 n
\r
6672 0000020174 00000 n
\r
6673 0000020418 00000 n
\r
6674 0000020662 00000 n
\r
6675 0000020906 00000 n
\r
6676 0000021150 00000 n
\r
6677 0000021394 00000 n
\r
6678 0000021638 00000 n
\r
6679 0000021882 00000 n
\r
6680 0000022125 00000 n
\r
6681 0000022405 00000 n
\r
6682 0000022672 00000 n
\r
6683 0000022909 00000 n
\r
6684 0000023175 00000 n
\r
6685 0000023441 00000 n
\r
6686 0000023710 00000 n
\r
6687 0000023963 00000 n
\r
6688 0000024930 00000 n
\r
6689 0000025174 00000 n
\r
6690 0000025509 00000 n
\r
6691 0000025754 00000 n
\r
6692 0000025999 00000 n
\r
6693 0000026244 00000 n
\r
6694 0000026489 00000 n
\r
6695 0000026734 00000 n
\r
6696 0000026963 00000 n
\r
6697 0000027338 00000 n
\r
6698 0000027638 00000 n
\r
6699 0000027884 00000 n
\r
6700 0000028130 00000 n
\r
6701 0000028376 00000 n
\r
6702 0000028620 00000 n
\r
6703 0000028866 00000 n
\r
6704 0000029112 00000 n
\r
6705 0000029358 00000 n
\r
6706 0000029604 00000 n
\r
6707 0000029833 00000 n
\r
6708 0000030235 00000 n
\r
6709 0000030480 00000 n
\r
6710 0000030726 00000 n
\r
6711 0000030972 00000 n
\r
6712 0000031218 00000 n
\r
6713 0000031464 00000 n
\r
6714 0000031710 00000 n
\r
6715 0000031955 00000 n
\r
6716 0000032200 00000 n
\r
6717 0000032446 00000 n
\r
6718 0000032692 00000 n
\r
6719 0000032938 00000 n
\r
6720 0000033184 00000 n
\r
6721 0000033430 00000 n
\r
6722 0000033676 00000 n
\r
6723 0000033922 00000 n
\r
6724 0000034168 00000 n
\r
6725 0000034414 00000 n
\r
6726 0000034660 00000 n
\r
6727 0000034906 00000 n
\r
6728 0000035152 00000 n
\r
6729 0000035398 00000 n
\r
6730 0000035644 00000 n
\r
6731 0000035888 00000 n
\r
6732 0000036134 00000 n
\r
6733 0000036380 00000 n
\r
6734 0000036609 00000 n
\r
6735 0000037180 00000 n
\r
6736 0000037445 00000 n
\r
6737 0000037690 00000 n
\r
6738 0000037936 00000 n
\r
6739 0000038182 00000 n
\r
6740 0000038428 00000 n
\r
6741 0000038674 00000 n
\r
6742 0000038919 00000 n
\r
6743 0000039165 00000 n
\r
6744 0000039410 00000 n
\r
6745 0000039662 00000 n
\r
6746 0000039908 00000 n
\r
6747 0000040154 00000 n
\r
6748 0000040400 00000 n
\r
6749 0000040646 00000 n
\r
6750 0000040892 00000 n
\r
6751 0000041138 00000 n
\r
6752 0000041384 00000 n
\r
6753 0000041630 00000 n
\r
6754 0000041876 00000 n
\r
6755 0000042122 00000 n
\r
6756 0000042368 00000 n
\r
6757 0000042614 00000 n
\r
6758 0000042860 00000 n
\r
6759 0000043091 00000 n
\r
6760 0000043293 00000 n
\r
6761 0000043522 00000 n
\r
6762 0000044069 00000 n
\r
6763 0000044257 00000 n
\r
6764 0000044503 00000 n
\r
6765 0000044749 00000 n
\r
6766 0000044995 00000 n
\r
6767 0000045241 00000 n
\r
6768 0000045486 00000 n
\r
6769 0000045732 00000 n
\r
6770 0000045978 00000 n
\r
6771 0000046223 00000 n
\r
6772 0000046482 00000 n
\r
6773 0000046738 00000 n
\r
6774 0000046984 00000 n
\r
6775 0000047230 00000 n
\r
6776 0000047476 00000 n
\r
6777 0000047722 00000 n
\r
6778 0000047968 00000 n
\r
6779 0000048213 00000 n
\r
6780 0000048459 00000 n
\r
6781 0000048705 00000 n
\r
6782 0000048951 00000 n
\r
6783 0000049197 00000 n
\r
6784 0000049443 00000 n
\r
6785 0000049689 00000 n
\r
6786 0000049934 00000 n
\r
6787 0000050178 00000 n
\r
6788 0000050443 00000 n
\r
6789 0000050689 00000 n
\r
6790 0000050935 00000 n
\r
6791 0000051181 00000 n
\r
6792 0000051427 00000 n
\r
6793 0000051673 00000 n
\r
6794 0000051919 00000 n
\r
6795 0000052148 00000 n
\r
6796 0000052780 00000 n
\r
6797 0000053026 00000 n
\r
6798 0000053272 00000 n
\r
6799 0000053517 00000 n
\r
6800 0000053761 00000 n
\r
6801 0000054021 00000 n
\r
6802 0000054267 00000 n
\r
6803 0000054513 00000 n
\r
6804 0000054742 00000 n
\r
6805 0000055134 00000 n
\r
6806 0000055380 00000 n
\r
6807 0000055626 00000 n
\r
6808 0000055871 00000 n
\r
6809 0000056118 00000 n
\r
6810 0000056455 00000 n
\r
6811 0000056619 00000 n
\r
6812 0000056938 00000 n
\r
6813 0000057067 00000 n
\r
6814 0000057333 00000 n
\r
6815 0000057663 00000 n
\r
6816 0000057938 00000 n
\r
6817 0000058254 00000 n
\r
6818 0000058561 00000 n
\r
6819 0000058871 00000 n
\r
6820 0000059151 00000 n
\r
6821 0000059437 00000 n
\r
6822 0000059718 00000 n
\r
6823 0000059984 00000 n
\r
6824 0000060290 00000 n
\r
6825 0000060562 00000 n
\r
6826 0000060840 00000 n
\r
6827 0000061185 00000 n
\r
6828 0000061559 00000 n
\r
6829 0000061897 00000 n
\r
6830 0000062232 00000 n
\r
6831 0000062603 00000 n
\r
6832 0000062903 00000 n
\r
6833 0000063282 00000 n
\r
6834 0000063645 00000 n
\r
6835 0000063970 00000 n
\r
6836 0000064267 00000 n
\r
6837 0000064582 00000 n
\r
6838 0000064854 00000 n
\r
6839 0000065147 00000 n
\r
6840 0000065440 00000 n
\r
6841 0000065719 00000 n
\r
6842 0000065936 00000 n
\r
6843 0000066136 00000 n
\r
6844 0000070258 00000 n
\r
6845 0000079190 00000 n
\r
6846 0000083788 00000 n
\r
6847 0000088395 00000 n
\r
6848 0000093547 00000 n
\r
6849 0000100700 00000 n
\r
6850 0000107709 00000 n
\r
6851 0000115683 00000 n
\r
6852 0000122598 00000 n
\r
6853 0000127207 00000 n
\r
6854 0000127429 00000 n
\r
6855 0000127508 00000 n
\r
6856 0000127587 00000 n
\r
6857 0000127666 00000 n
\r
6858 0000127745 00000 n
\r
6859 0000127824 00000 n
\r
6860 0000127903 00000 n
\r
6861 0000127982 00000 n
\r
6862 0000128061 00000 n
\r
6863 0000128140 00000 n
\r
6866 % ReportLab generated PDF document -- digest (http://www.reportlab.com)
\r
6867 [(\010\207@\355\312B{y\207\001\310\013\021\257\346z) (\010\207@\355\312B{y\207\001\310\013\021\257\346z)]
\r