diff --git a/Gruntfile.js b/Gruntfile.js index 2db1d4e..695b131 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -111,8 +111,8 @@ module.exports = function (grunt) { }, simplemocha: { - node: { - src: 'test/node/**/*.js', + functional: { + src: 'test/functional/**/*.js', options: { globals: ['should'], timeout: 3000, @@ -120,39 +120,12 @@ module.exports = function (grunt) { reporter: 'spec' } }, - karlcow: { - src: 'test/node/testsuite.karlcow.js', + unit: { + src: 'test/unit/**/*.js', options: { globals: ['should'], timeout: 3000, - ignoreLeaks: false, - reporter: 'spec' - } - }, - issues: { - src: 'test/node/testsuite.issues.js', - options: { - globals: ['should'], - timeout: 3000, - ignoreLeaks: false, - reporter: 'spec' - } - }, - standard: { - src: 'test/node/testsuite.standard.js', - options: { - globals: ['should'], - timeout: 3000, - ignoreLeaks: false, - reporter: 'spec' - } - }, - features: { - src: 'test/node/testsuite.features.js', - options: { - globals: ['should'], - timeout: 3000, - ignoreLeaks: false, + ignoreLeaks: true, reporter: 'spec' } }, @@ -204,7 +177,7 @@ module.exports = function (grunt) { */ grunt.registerTask('performancejs', function () { 'use strict'; - var perf = require('./test/node/performance.js'); + var perf = require('./test/performance/performance.js'); perf.runTests(); perf.generateLogs(); }); @@ -227,16 +200,13 @@ module.exports = function (grunt) { grunt.task.run(['lint', 'concat:test', 'simplemocha:single', 'clean']); }); - /** - * Test in Legacy Node + * Tasks */ - grunt.registerTask('test-old', ['concat:test', 'simplemocha:node', 'clean']); - /** - * Tasks for new node versions - */ - grunt.registerTask('test', ['clean', 'lint', 'concat:test', 'simplemocha:node', 'clean']); + grunt.registerTask('test', ['clean', 'lint', 'concat:test', 'simplemocha:unit', 'simplemocha:functional', 'clean']); + grunt.registerTask('test-functional', ['concat:test', 'simplemocha:functional', 'clean']); + grunt.registerTask('test-unit', ['concat:test', 'simplemocha:unit', 'clean']); grunt.registerTask('performance', ['concat:test', 'performancejs', 'clean']); grunt.registerTask('build', ['test', 'concat:dist', 'uglify', 'endline']); grunt.registerTask('prep-release', ['build', 'generate-changelog']); diff --git a/package.json b/package.json index 5b20a37..3e30685 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "showdown", - "version": "1.8.5", + "version": "2.0.0-alpha1", "description": "A Markdown to HTML converter written in Javascript", "author": "Estevão Santos", "homepage": "http://showdownjs.com/", diff --git a/performance.json b/performance.json index f0972c4..419de8c 100644 --- a/performance.json +++ b/performance.json @@ -1 +1 @@ -{"1.9.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.47623109999999996,"maxTime":9.944885,"minTime":0.0876940000000559},{"name":"performance.testfile.md","time":32.20845420000003,"maxTime":61.88545199999999,"minTime":28.234484000000066}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.827436050000029,"maxTime":23.030151000000387,"minTime":2.428888999999799},{"name":"anchors","time":0.36267595000003894,"maxTime":0.6361520000000382,"minTime":0.2944200000001729},{"name":"autoLinks","time":0.11954594999999699,"maxTime":0.3191310000001977,"minTime":0.07081800000014482},{"name":"blockQuotes","time":2.8835528000000297,"maxTime":6.237062000000151,"minTime":2.040447000000313},{"name":"codeBlocks","time":0.2899901999999884,"maxTime":1.1309700000001612,"minTime":0.18894700000009834},{"name":"codeSpans","time":0.31439960000000156,"maxTime":0.8751229999998031,"minTime":0.23414999999977226},{"name":"detab","time":0.09471464999996897,"maxTime":0.14133399999991525,"minTime":0.08558300000004238},{"name":"encodeAmpsAndAngles","time":0.15546699999999875,"maxTime":1.1864189999996597,"minTime":0.09462400000029447},{"name":"encodeBackslashEscapes","time":0.08662335000003622,"maxTime":0.14434700000037992,"minTime":0.06931000000031418},{"name":"encodeCode","time":0.9182015000000092,"maxTime":1.278632000000016,"minTime":0.865179000000353},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2454204000000118,"maxTime":0.7105860000001485,"minTime":0.1564010000001872},{"name":"githubCodeBlocks","time":0.1596106000000191,"maxTime":0.2905020000002878,"minTime":0.1422379999999066},{"name":"hashBlock","time":0.042761799999971116,"maxTime":0.06659899999976915,"minTime":0.037669000000278174},{"name":"hashElement","time":0.002787500000044929,"maxTime":0.034654999999929714,"minTime":0.0003010000000358559},{"name":"hashHTMLSpans","time":4.27261539999995,"maxTime":6.303661999999804,"minTime":3.9832579999997506},{"name":"hashPreCodeTags","time":0.13292590000003202,"maxTime":0.34384200000022247,"minTime":0.10999300000003132},{"name":"headers","time":1.453898150000009,"maxTime":3.8741690000001654,"minTime":1.0984250000001339},{"name":"horizontalRule","time":0.23021724999998697,"maxTime":0.30014500000015687,"minTime":0.20190500000035172},{"name":"images","time":0.19111685000000306,"maxTime":0.4761349999998856,"minTime":0.13530599999967308},{"name":"italicsAndBold","time":0.30972870000000513,"maxTime":0.8660830000003443,"minTime":0.23565599999983533},{"name":"lists","time":3.1345930500000123,"maxTime":4.249350999999933,"minTime":2.6624360000000706},{"name":"outdent","time":0.16700869999999668,"maxTime":0.2621750000002976,"minTime":0.1398260000000846},{"name":"paragraphs","time":6.382811100000003,"maxTime":7.885451999999987,"minTime":5.680467000000135},{"name":"spanGamut","time":4.106134100000008,"maxTime":5.309806000000208,"minTime":3.6981800000003204},{"name":"strikethrough","time":0.004791549999981726,"maxTime":0.08678899999995338,"minTime":0.0003010000000358559},{"name":"stripLinkDefinitions","time":0.24528460000003632,"maxTime":0.3763870000002498,"minTime":0.220890000000054},{"name":"tables","time":0.00311890000002677,"maxTime":0.049421000000165805,"minTime":0.0006020000000717118},{"name":"unescapeSpecialChars","time":0.01015549999999621,"maxTime":0.0569550000000163,"minTime":0.006930999999894993}]}],"1.8.4":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.7357727200000045,"maxTime":11.075555000000008,"minTime":0.11662300000000414},{"name":"performance.testfile.md","time":32.917593419999996,"maxTime":62.42667800000004,"minTime":27.940666000000192}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.259524950000037,"maxTime":17.332808000000114,"minTime":2.340292000000318},{"name":"anchors","time":0.5218948500000351,"maxTime":2.8983949999997094,"minTime":0.306775000000016},{"name":"autoLinks","time":0.12436755000001085,"maxTime":0.30014600000004066,"minTime":0.07142100000010032},{"name":"blockQuotes","time":2.24432690000001,"maxTime":3.3329420000000027,"minTime":2.0148330000001806},{"name":"codeBlocks","time":0.24412445000000388,"maxTime":0.8169630000002144,"minTime":0.19015300000000934},{"name":"codeSpans","time":0.3541780499999959,"maxTime":1.2014869999998155,"minTime":0.24288900000010472},{"name":"detab","time":0.09634199999998146,"maxTime":0.1431420000003527,"minTime":0.08769299999994473},{"name":"encodeAmpsAndAngles","time":0.1376722000000427,"maxTime":0.19768599999997605,"minTime":0.09613100000024133},{"name":"encodeBackslashEscapes","time":0.0932680999999775,"maxTime":0.1841260000001057,"minTime":0.07051599999977043},{"name":"encodeCode","time":0.9610537499999964,"maxTime":1.6110220000000481,"minTime":0.8582480000000032},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2516583999999966,"maxTime":0.5204329999996844,"minTime":0.1582090000001699},{"name":"githubCodeBlocks","time":0.26234104999991814,"maxTime":0.3896469999999681,"minTime":0.16092100000014398},{"name":"hashBlock","time":0.051877600000034364,"maxTime":0.12867700000015247,"minTime":0.03736699999990378},{"name":"hashElement","time":0.002682149999986905,"maxTime":0.040380999999797496,"minTime":0.0003020000003743917},{"name":"hashHTMLSpans","time":4.239888850000034,"maxTime":4.673051000000214,"minTime":4.043529000000035},{"name":"hashPreCodeTags","time":0.13398059999999531,"maxTime":0.3372110000000248,"minTime":0.11270500000000538},{"name":"headers","time":1.4121460499999785,"maxTime":4.474761999999828,"minTime":1.076727000000119},{"name":"horizontalRule","time":0.3580051499999854,"maxTime":2.6859419999996135,"minTime":0.19648099999994884},{"name":"images","time":0.18359815000001162,"maxTime":0.4803540000002613,"minTime":0.13048499999968044},{"name":"italicsAndBold","time":0.29952790000002094,"maxTime":0.4577519999998003,"minTime":0.23414999999977226},{"name":"lists","time":3.073871250000002,"maxTime":4.651354000000083,"minTime":2.6256719999996676},{"name":"outdent","time":0.20359270000003563,"maxTime":0.9311750000001666,"minTime":0.13681300000007468},{"name":"paragraphs","time":6.405547999999953,"maxTime":8.019855000000007,"minTime":5.821198000000095},{"name":"spanGamut","time":4.135636349999913,"maxTime":6.038471999999729,"minTime":3.839814999999817},{"name":"strikethrough","time":0.007217349999996259,"maxTime":0.1319909999997435,"minTime":0.0003010000000358559},{"name":"stripLinkDefinitions","time":0.24829814999998234,"maxTime":0.40260499999976673,"minTime":0.21667100000013306},{"name":"tables","time":0.0033450000000129878,"maxTime":0.04008000000021639,"minTime":0.0006029999999555002},{"name":"unescapeSpecialChars","time":0.009387199999969198,"maxTime":0.03947699999980614,"minTime":0.006930999999894993}]}],"1.8.3":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.9269011799999908,"maxTime":32.65378700000008,"minTime":0.14705900000001293},{"name":"performance.testfile.md","time":32.484542280000035,"maxTime":62.282010000000014,"minTime":28.40262900000016}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.454346750000013,"maxTime":18.356191000000308,"minTime":2.3848909999996977},{"name":"anchors","time":0.504325800000015,"maxTime":3.1102430000000822,"minTime":0.2902009999997972},{"name":"autoLinks","time":0.11421199999999772,"maxTime":0.28417399999989357,"minTime":0.06931099999974322},{"name":"blockQuotes","time":2.268720650000046,"maxTime":3.373623999999836,"minTime":1.996752000000015},{"name":"codeBlocks","time":0.2502117500000395,"maxTime":0.8398649999999179,"minTime":0.19196000000010827},{"name":"codeSpans","time":0.3517671000000064,"maxTime":1.230717999999797,"minTime":0.2486149999999725},{"name":"detab","time":0.11473945000000185,"maxTime":0.17900200000030964,"minTime":0.08739199999990888},{"name":"encodeAmpsAndAngles","time":0.10544264999996358,"maxTime":0.16212700000005498,"minTime":0.09462399999983973},{"name":"encodeBackslashEscapes","time":0.10833570000006602,"maxTime":0.2347530000001825,"minTime":0.07503700000006575},{"name":"encodeCode","time":0.9939308499999925,"maxTime":1.9153870000000097,"minTime":0.8467970000001515},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.23689210000002275,"maxTime":0.4746280000003935,"minTime":0.1600180000000364},{"name":"githubCodeBlocks","time":0.2020106000000169,"maxTime":0.7714579999997113,"minTime":0.15127899999970396},{"name":"hashBlock","time":0.07104355000003579,"maxTime":0.4927090000001044,"minTime":0.03917600000022503},{"name":"hashElement","time":0.0024862499999926515,"maxTime":0.036463999999796215,"minTime":0.0006019999996169645},{"name":"hashHTMLSpans","time":4.161957949999987,"maxTime":4.708306999999877,"minTime":3.9594499999998334},{"name":"hashPreCodeTags","time":0.1303646000000299,"maxTime":0.3314860000000408,"minTime":0.11240400000042428},{"name":"headers","time":1.4091020500000013,"maxTime":4.621517999999924,"minTime":1.043880000000172},{"name":"horizontalRule","time":0.3509834499999897,"maxTime":2.6549019999997654,"minTime":0.19617999999991298},{"name":"images","time":0.19913270000001831,"maxTime":0.5445410000002084,"minTime":0.1307859999997163},{"name":"italicsAndBold","time":0.268699450000031,"maxTime":0.35710100000005696,"minTime":0.23475200000029872},{"name":"lists","time":3.0566478999999847,"maxTime":4.403038999999808,"minTime":2.6856400000001486},{"name":"outdent","time":0.15278490000002876,"maxTime":0.3073779999999715,"minTime":0.13621100000000297},{"name":"paragraphs","time":6.455042899999944,"maxTime":7.90051799999992,"minTime":5.708189999999831},{"name":"spanGamut","time":4.255919250000034,"maxTime":5.54154299999982,"minTime":3.929916999999932},{"name":"strikethrough","time":0.005107850000035797,"maxTime":0.08889899999985573,"minTime":0.0003010000000358559},{"name":"stripLinkDefinitions","time":0.24843364999996992,"maxTime":0.3935639999999694,"minTime":0.22480699999960052},{"name":"tables","time":0.0021395500000380707,"maxTime":0.028025000000070577,"minTime":0.0006020000000717118},{"name":"unescapeSpecialChars","time":0.008935100000007879,"maxTime":0.03887399999985064,"minTime":0.006930999999894993}]}],"1.8.2":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.36118707999999744,"maxTime":8.97694100000001,"minTime":0.10366399999998066},{"name":"performance.testfile.md","time":33.109353200000044,"maxTime":56.477973000000134,"minTime":29.178900000000112}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.488247100000035,"maxTime":20.713954999999714,"minTime":2.3207030000003215},{"name":"anchors","time":0.5058775499999456,"maxTime":3.1581569999998464,"minTime":0.29200900000023466},{"name":"autoLinks","time":0.14073085000002267,"maxTime":0.36463400000002366,"minTime":0.07232500000009168},{"name":"blockQuotes","time":2.3000001499999825,"maxTime":3.6421259999997346,"minTime":2.046473999999762},{"name":"codeBlocks","time":0.24317504999999073,"maxTime":0.8772320000002765,"minTime":0.18924799999967945},{"name":"codeSpans","time":0.26844330000001265,"maxTime":1.1755699999998797,"minTime":0.1594150000000809},{"name":"detab","time":0.0950761500000226,"maxTime":0.17207199999984368,"minTime":0.0891990000000078},{"name":"encodeAmpsAndAngles","time":0.10803434999995716,"maxTime":0.22993099999985134,"minTime":0.09733700000015233},{"name":"encodeBackslashEscapes","time":0.07844164999999066,"maxTime":0.11903299999994488,"minTime":0.07413300000007439},{"name":"encodeCode","time":1.0021724500000346,"maxTime":1.5441220000002431,"minTime":0.850713999999698},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.25580170000000635,"maxTime":0.5656359999998131,"minTime":0.16363400000000183},{"name":"githubCodeBlocks","time":0.2531047000000399,"maxTime":0.9986770000000433,"minTime":0.15248300000030213},{"name":"hashBlock","time":0.04166155000000345,"maxTime":0.08015899999963949,"minTime":0.037066000000322674},{"name":"hashElement","time":0.002244949999999335,"maxTime":0.0322439999999915,"minTime":0.00030099999958110857},{"name":"hashHTMLSpans","time":4.444473249999987,"maxTime":5.282380000000103,"minTime":3.9871729999999843},{"name":"hashPreCodeTags","time":0.15179035000001023,"maxTime":0.2648869999998169,"minTime":0.11722499999996217},{"name":"headers","time":1.4647912000000134,"maxTime":4.970481000000291,"minTime":1.0589469999999892},{"name":"horizontalRule","time":0.24510365000001003,"maxTime":0.5623199999999997,"minTime":0.20461699999987104},{"name":"images","time":0.31239540000003674,"maxTime":2.6151230000000396,"minTime":0.1310880000000907},{"name":"italicsAndBold","time":0.287217499999997,"maxTime":0.42671299999983603,"minTime":0.24379300000009607},{"name":"lists","time":3.260661600000026,"maxTime":4.098372000000381,"minTime":2.7923170000003665},{"name":"outdent","time":0.17895719999999074,"maxTime":0.37729099999978644,"minTime":0.1410319999999956},{"name":"paragraphs","time":6.661300749999964,"maxTime":9.04655300000013,"minTime":5.883574999999837},{"name":"spanGamut","time":4.560794749999991,"maxTime":6.1731730000001335,"minTime":4.0085690000000795},{"name":"strikethrough","time":0.005469599999855745,"maxTime":0.09703499999977794,"minTime":0.00030099999958110857},{"name":"stripLinkDefinitions","time":0.25079934999998843,"maxTime":0.4017010000002301,"minTime":0.21576699999968696},{"name":"tables","time":0.005861300000015035,"maxTime":0.08618700000033641,"minTime":0.001205000000027212},{"name":"unescapeSpecialChars","time":0.013244550000035816,"maxTime":0.06358499999987544,"minTime":0.007835999999770138}]}],"1.8.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3569385800000009,"maxTime":9.000459999999975,"minTime":0.09070699999995213},{"name":"performance.testfile.md","time":31.433715060000004,"maxTime":57.438766999999984,"minTime":26.734683000000132}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.177346950000015,"maxTime":7.660953999999947,"minTime":2.346321999999873},{"name":"anchors","time":0.541678950000005,"maxTime":3.749413000000004,"minTime":0.30014600000004066},{"name":"autoLinks","time":0.08653315000001385,"maxTime":0.18322200000011435,"minTime":0.06931100000019796},{"name":"blockQuotes","time":2.048646549999944,"maxTime":3.5523299999999836,"minTime":1.8153400000001056},{"name":"codeBlocks","time":0.26372769999998125,"maxTime":1.1626129999999648,"minTime":0.18472799999972267},{"name":"codeSpans","time":0.27142715000002227,"maxTime":0.7904450000000907,"minTime":0.16303100000004633},{"name":"detab","time":0.09152044999998452,"maxTime":0.11963699999978417,"minTime":0.08648700000003373},{"name":"encodeAmpsAndAngles","time":0.10590985000001182,"maxTime":0.14615600000024642,"minTime":0.09703500000023269},{"name":"encodeBackslashEscapes","time":0.09130940000002283,"maxTime":0.15218199999981152,"minTime":0.07684500000004846},{"name":"encodeCode","time":0.961777750000033,"maxTime":1.551958999999897,"minTime":0.8615639999998166},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.23877579999996215,"maxTime":0.48698400000012043,"minTime":0.17297599999983504},{"name":"githubCodeBlocks","time":0.22202060000001894,"maxTime":0.9139990000003309,"minTime":0.1404299999999239},{"name":"hashBlock","time":0.0631934499999943,"maxTime":0.402002999999695,"minTime":0.035257999999885214},{"name":"hashElement","time":0.0014766499999950612,"maxTime":0.02531300000009651,"minTime":0},{"name":"hashHTMLSpans","time":4.30338740000002,"maxTime":4.888522000000194,"minTime":4.0212320000000545},{"name":"hashPreCodeTags","time":0.16443229999997583,"maxTime":0.5409259999996721,"minTime":0.11029499999995096},{"name":"headers","time":1.1587860999999975,"maxTime":3.7789459999999053,"minTime":0.9682419999999183},{"name":"horizontalRule","time":0.2442149499999914,"maxTime":0.4185769999999138,"minTime":0.1940709999998944},{"name":"images","time":0.32417875000003277,"maxTime":3.0575109999999768,"minTime":0.13319700000010926},{"name":"italicsAndBold","time":0.28938759999996366,"maxTime":0.41917899999998554,"minTime":0.23656099999971048},{"name":"lists","time":2.6713588999999955,"maxTime":3.1388750000000982,"minTime":2.4942840000003343},{"name":"outdent","time":0.15887245000001257,"maxTime":0.2525319999999738,"minTime":0.13862199999994118},{"name":"paragraphs","time":5.593502349999949,"maxTime":6.832538999999997,"minTime":5.159435999999914},{"name":"spanGamut","time":5.069422249999979,"maxTime":9.599546000000373,"minTime":4.127910000000156},{"name":"strikethrough","time":0.003405200000020159,"maxTime":0.062079000000267115,"minTime":0},{"name":"stripLinkDefinitions","time":0.2712614000000258,"maxTime":0.4004960000002029,"minTime":0.22480799999993906},{"name":"tables","time":0.0018532499999764696,"maxTime":0.03103899999996429,"minTime":0},{"name":"unescapeSpecialChars","time":0.008362499999998363,"maxTime":0.03797099999974307,"minTime":0.006628999999975349}]}],"1.7.6":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3132123199999978,"maxTime":6.2674990000000435,"minTime":0.09161100000005717},{"name":"performance.testfile.md","time":30.962222960000013,"maxTime":54.58250999999996,"minTime":26.38147600000002}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.098720800000001,"maxTime":7.07210699999996,"minTime":2.3604820000000473},{"name":"anchors","time":0.573802499999988,"maxTime":4.501581999999871,"minTime":0.2944200000001729},{"name":"autoLinks","time":0.08704519999992044,"maxTime":0.21034299999973882,"minTime":0.06629800000018804},{"name":"blockQuotes","time":2.176025850000019,"maxTime":4.601932000000033,"minTime":1.8228730000000724},{"name":"codeBlocks","time":0.2823659499999621,"maxTime":0.8853699999999662,"minTime":0.19256300000006377},{"name":"codeSpans","time":0.26464649999998074,"maxTime":0.7636240000001635,"minTime":0.16604400000005626},{"name":"detab","time":0.10188689999999952,"maxTime":0.15459400000008827,"minTime":0.09070699999983844},{"name":"encodeAmpsAndAngles","time":0.1072658999999021,"maxTime":0.17538599999988946,"minTime":0.09823999999980515},{"name":"encodeBackslashEscapes","time":0.1198171499999944,"maxTime":0.8715069999998377,"minTime":0.07292699999970864},{"name":"encodeCode","time":0.982675499999982,"maxTime":1.8424599999998463,"minTime":0.8727119999998649},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.3008235499999728,"maxTime":0.3890440000000126,"minTime":0.2772429999999986},{"name":"githubCodeBlocks","time":0.20439130000002023,"maxTime":0.8889859999999317,"minTime":0.1461549999999079},{"name":"hashBlock","time":0.06328369999998813,"maxTime":0.4149600000000646,"minTime":0.034957000000304106},{"name":"hashElement","time":0.0017929999999978462,"maxTime":0.031942999999955646,"minTime":0},{"name":"hashHTMLSpans","time":4.130528449999997,"maxTime":4.411176999999952,"minTime":3.987779000000046},{"name":"hashPreCodeTags","time":0.26229599999996933,"maxTime":2.428888999999799,"minTime":0.10848600000008446},{"name":"headers","time":1.263836200000037,"maxTime":4.308414999999968,"minTime":0.9534750000002532},{"name":"horizontalRule","time":0.2299157000000605,"maxTime":0.33088400000042384,"minTime":0.19376899999997477},{"name":"images","time":0.18361319999996795,"maxTime":0.5638280000002851,"minTime":0.13379999999961},{"name":"italicsAndBold","time":0.31194355000000085,"maxTime":0.8284139999996114,"minTime":0.25132699999994657},{"name":"lists","time":2.641733750000003,"maxTime":3.2741790000000037,"minTime":2.4511889999998857},{"name":"outdent","time":0.1594599499999731,"maxTime":0.2401769999996759,"minTime":0.14404600000034407},{"name":"paragraphs","time":6.723880100000019,"maxTime":12.671812000000045,"minTime":5.367362999999841},{"name":"spanGamut","time":4.990629550000063,"maxTime":9.206274000000121,"minTime":4.172807000000375},{"name":"strikethrough","time":0.0031943499999670167,"maxTime":0.0581609999999273,"minTime":0},{"name":"stripLinkDefinitions","time":0.245947799999999,"maxTime":0.38994800000000396,"minTime":0.21908299999995506},{"name":"tables","time":0.0024710999999797423,"maxTime":0.043695999999727064,"minTime":0},{"name":"unescapeSpecialChars","time":0.010472100000015416,"maxTime":0.05092800000011266,"minTime":0.006930999999894993}]}],"1.7.5":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.5624536399999989,"maxTime":14.434112000000027,"minTime":0.1175269999999955},{"name":"performance.testfile.md","time":30.396062639999997,"maxTime":57.88561900000002,"minTime":26.627980999999863}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.279682000000003,"maxTime":8.3917220000003,"minTime":2.3574690000000373},{"name":"anchors","time":0.6018129999999928,"maxTime":5.340845000000172,"minTime":0.2853789999999208},{"name":"autoLinks","time":0.09221340000001418,"maxTime":0.19316600000001927,"minTime":0.06478999999990265},{"name":"blockQuotes","time":2.0676297999999633,"maxTime":4.429558999999699,"minTime":1.7363850000001548},{"name":"codeBlocks","time":0.2791716500000575,"maxTime":0.9365990000001148,"minTime":0.18141300000024785},{"name":"codeSpans","time":0.22182445000000825,"maxTime":0.5915520000003198,"minTime":0.1576060000002144},{"name":"detab","time":0.12001294999997754,"maxTime":0.14494999999988067,"minTime":0.09130899999991016},{"name":"encodeAmpsAndAngles","time":0.1162462000000005,"maxTime":0.22179400000004534,"minTime":0.09643299999970623},{"name":"encodeBackslashEscapes","time":0.13970635000002857,"maxTime":0.9139979999999923,"minTime":0.07111899999972593},{"name":"encodeCode","time":1.1949925000000348,"maxTime":2.009107000000313,"minTime":0.8612610000000132},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.30746834999999917,"maxTime":0.46829899999966074,"minTime":0.2691060000001926},{"name":"githubCodeBlocks","time":0.19697799999999005,"maxTime":0.8374539999999797,"minTime":0.14404599999988932},{"name":"hashBlock","time":0.059848400000032595,"maxTime":0.4420820000000276,"minTime":0.03616199999987657},{"name":"hashElement","time":0.00222985000002609,"maxTime":0.0406820000002881,"minTime":0},{"name":"hashHTMLSpans","time":4.289491099999987,"maxTime":4.712226999999984,"minTime":4.001941999999872},{"name":"hashPreCodeTags","time":0.28119055000001936,"maxTime":2.4391359999999622,"minTime":0.10758299999997689},{"name":"headers","time":1.2212554000000182,"maxTime":4.602836000000025,"minTime":0.9082720000001245},{"name":"horizontalRule","time":0.20826354999994692,"maxTime":0.3522789999997258,"minTime":0.19316600000001927},{"name":"images","time":0.1816696500000262,"maxTime":0.6337419999999838,"minTime":0.12807400000019697},{"name":"italicsAndBold","time":0.33532845000006545,"maxTime":1.2762219999999616,"minTime":0.23897100000021965},{"name":"lists","time":3.142624149999983,"maxTime":6.410941999999977,"minTime":2.3930279999999584},{"name":"outdent","time":0.3979791999999634,"maxTime":0.5846209999999701,"minTime":0.15851100000008955},{"name":"paragraphs","time":5.925721800000019,"maxTime":11.595988000000034,"minTime":4.961444000000029},{"name":"spanGamut","time":4.442833449999966,"maxTime":6.011651999999685,"minTime":4.023940000000039},{"name":"strikethrough","time":0.00299849999998969,"maxTime":0.054544999999961874,"minTime":0},{"name":"stripLinkDefinitions","time":0.24257244999998875,"maxTime":0.42400099999986196,"minTime":0.21486400000003414},{"name":"tables","time":0.0026519000000007507,"maxTime":0.04851700000017445,"minTime":0},{"name":"unescapeSpecialChars","time":0.00845289999997476,"maxTime":0.04098400000020774,"minTime":0.006327999999939493}]}],"1.7.4":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.9721513400000095,"maxTime":25.185683999999924,"minTime":0.16001700000003893},{"name":"performance.testfile.md","time":30.397026539999985,"maxTime":61.91279899999995,"minTime":26.54959800000006}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":3.9990743000000064,"maxTime":6.602594000000408,"minTime":2.3143739999995887},{"name":"anchors","time":0.5273032499999545,"maxTime":3.822632999999769,"minTime":0.2850779999998849},{"name":"autoLinks","time":0.08963684999998804,"maxTime":0.18834400000014284,"minTime":0.06328400000029433},{"name":"blockQuotes","time":2.05724574999997,"maxTime":4.121875000000273,"minTime":1.7803800000001502},{"name":"codeBlocks","time":0.24737865000001874,"maxTime":1.0845610000001216,"minTime":0.18623500000012427},{"name":"codeSpans","time":0.26315439999996215,"maxTime":1.0170579999999063,"minTime":0.16182500000013533},{"name":"detab","time":0.1229059499999721,"maxTime":0.1579079999996793,"minTime":0.0970340000003489},{"name":"encodeAmpsAndAngles","time":0.11849099999999453,"maxTime":0.17116699999996854,"minTime":0.09613099999978658},{"name":"encodeBackslashEscapes","time":0.07934549999995397,"maxTime":0.14645599999994374,"minTime":0.07111799999984214},{"name":"encodeCode","time":0.9450961000000007,"maxTime":1.4528110000001107,"minTime":0.8663830000000416},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2850024500000245,"maxTime":0.4384650000001784,"minTime":0.245600000000195},{"name":"githubCodeBlocks","time":0.22539534999998523,"maxTime":0.9688430000001063,"minTime":0.1416349999999511},{"name":"hashBlock","time":0.06790930000001935,"maxTime":0.5767860000000837,"minTime":0.03555899999992107},{"name":"hashElement","time":0.0022601500000064335,"maxTime":0.04068300000017189,"minTime":0},{"name":"hashHTMLSpans","time":4.125777100000005,"maxTime":4.527794000000085,"minTime":3.95040599999993},{"name":"hashPreCodeTags","time":0.14892740000002505,"maxTime":0.5373079999999391,"minTime":0.10969100000011167},{"name":"headers","time":1.1714858000000277,"maxTime":3.876875999999811,"minTime":0.8841630000001715},{"name":"horizontalRule","time":0.3806509500000175,"maxTime":3.456793000000289,"minTime":0.1967819999999847},{"name":"images","time":0.19467249999997877,"maxTime":0.6180699999999888,"minTime":0.132593999999699},{"name":"italicsAndBold","time":0.2980658500000118,"maxTime":0.5623199999999997,"minTime":0.24499800000012328},{"name":"lists","time":3.7902082000000066,"maxTime":6.13881500000025,"minTime":2.612108000000262},{"name":"outdent","time":0.16693305000001146,"maxTime":0.2763379999996687,"minTime":0.13892200000009325},{"name":"paragraphs","time":5.349426699999981,"maxTime":6.076133999999911,"minTime":4.8972499999999854},{"name":"spanGamut","time":4.370021999999949,"maxTime":6.111091000000215,"minTime":3.9455849999999373},{"name":"strikethrough","time":0.002681949999941935,"maxTime":0.048215999999683845,"minTime":0},{"name":"stripLinkDefinitions","time":0.2550632000000178,"maxTime":0.400796000000355,"minTime":0.21817700000019613},{"name":"tables","time":0.001913599999966209,"maxTime":0.03284799999983079,"minTime":0},{"name":"unescapeSpecialChars","time":0.008859800000004725,"maxTime":0.04008000000021639,"minTime":0.006630000000313885}]}],"1.7.3":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.2769780200000014,"maxTime":5.742551000000049,"minTime":0.08799399999998059},{"name":"performance.testfile.md","time":30.73344694000001,"maxTime":54.768493000000035,"minTime":26.97154599999999}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.315576899999996,"maxTime":8.270586999999978,"minTime":2.3387870000001385},{"name":"anchors","time":0.5248635000000377,"maxTime":3.812093999999888,"minTime":0.28809199999977864},{"name":"autoLinks","time":0.0845591499999955,"maxTime":0.21998700000040117,"minTime":0.06268099999988408},{"name":"blockQuotes","time":2.032795400000032,"maxTime":3.6222429999997985,"minTime":1.7451259999998001},{"name":"codeBlocks","time":0.25076970000002347,"maxTime":1.059552000000167,"minTime":0.17809899999974732},{"name":"codeSpans","time":0.24638479999996435,"maxTime":0.7494609999998829,"minTime":0.1570040000001427},{"name":"detab","time":0.1421171499999673,"maxTime":0.7524739999998928,"minTime":0.08739100000002509},{"name":"encodeAmpsAndAngles","time":0.10028979999999592,"maxTime":0.12927999999965323,"minTime":0.09492600000021412},{"name":"encodeBackslashEscapes","time":0.07875814999997602,"maxTime":0.1247600000001512,"minTime":0.06991299999981493},{"name":"encodeCode","time":0.9767702500000042,"maxTime":1.773754000000281,"minTime":0.8516189999995731},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.27073390000000475,"maxTime":0.4414790000000721,"minTime":0.24409500000001572},{"name":"githubCodeBlocks","time":0.23499365000002398,"maxTime":0.9848159999996824,"minTime":0.1392240000000129},{"name":"hashBlock","time":0.0681052000000136,"maxTime":0.5496650000000045,"minTime":0.03616199999987657},{"name":"hashElement","time":0.001687549999996918,"maxTime":0.029532000000017433,"minTime":0},{"name":"hashHTMLSpans","time":4.197401899999977,"maxTime":4.563965999999709,"minTime":4.005560999999943},{"name":"hashPreCodeTags","time":0.13869685000001936,"maxTime":0.5433360000001812,"minTime":0.10577400000011039},{"name":"headers","time":1.148419750000039,"maxTime":4.214097000000038,"minTime":0.8796440000000985},{"name":"horizontalRule","time":0.21377854999998364,"maxTime":0.27302400000007765,"minTime":0.1985909999998512},{"name":"images","time":0.3095482500000116,"maxTime":3.095480999999836,"minTime":0.11993800000027477},{"name":"italicsAndBold","time":0.2785843000000341,"maxTime":0.3778940000001967,"minTime":0.23505399999976362},{"name":"lists","time":3.8429223499999354,"maxTime":8.277819999999792,"minTime":2.629892999999811},{"name":"outdent","time":0.19257850000001325,"maxTime":0.3863329999999223,"minTime":0.14404500000000553},{"name":"paragraphs","time":5.540976899999987,"maxTime":8.153060000000096,"minTime":4.83608600000025},{"name":"spanGamut","time":4.637932300000012,"maxTime":5.775095999999849,"minTime":4.142072999999982},{"name":"strikethrough","time":0.0028779499999927794,"maxTime":0.051530999999613414,"minTime":0},{"name":"stripLinkDefinitions","time":0.16675279999994927,"maxTime":0.27483299999994415,"minTime":0.1416349999999511},{"name":"tables","time":0.0021245000000135405,"maxTime":0.03646299999991243,"minTime":0},{"name":"unescapeSpecialChars","time":0.009130949999985205,"maxTime":0.031942999999955646,"minTime":0.00783499999988635}]}],"1.7.2":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.2924792600000001,"maxTime":5.779913000000079,"minTime":0.0870909999999867},{"name":"performance.testfile.md","time":30.395544379999997,"maxTime":53.85987,"minTime":26.054209000000128}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.303097000000003,"maxTime":7.7980609999999615,"minTime":2.377357999999731},{"name":"anchors","time":0.3474425999999994,"maxTime":0.6473019999998542,"minTime":0.28688599999986764},{"name":"autoLinks","time":0.08811514999999873,"maxTime":0.16544199999998455,"minTime":0.06328399999983958},{"name":"blockQuotes","time":2.1012153500000297,"maxTime":5.12055700000019,"minTime":1.7381930000001375},{"name":"codeBlocks","time":0.23850445000000492,"maxTime":0.8784390000000712,"minTime":0.18412599999965096},{"name":"codeSpans","time":0.2522458500000312,"maxTime":0.6283170000001519,"minTime":0.16031900000007226},{"name":"detab","time":0.09415714999997818,"maxTime":0.12867700000015247,"minTime":0.08769299999994473},{"name":"encodeAmpsAndAngles","time":0.1305904000000055,"maxTime":0.7331880000001547,"minTime":0.09251499999982116},{"name":"encodeBackslashEscapes","time":0.07973749999998744,"maxTime":0.1157189999998991,"minTime":0.07021500000018932},{"name":"encodeCode","time":0.9388443000000052,"maxTime":1.4799349999998412,"minTime":0.8573440000000119},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.28453565000002073,"maxTime":0.4731209999999919,"minTime":0.24349200000006022},{"name":"githubCodeBlocks","time":0.2144414500000039,"maxTime":1.046893000000182,"minTime":0.13952599999993254},{"name":"hashBlock","time":0.06795475000005809,"maxTime":0.5532809999999699,"minTime":0.03616200000033132},{"name":"hashElement","time":0.0016724999999723877,"maxTime":0.029833999999937078,"minTime":0},{"name":"hashHTMLSpans","time":4.323498449999988,"maxTime":6.161724999999933,"minTime":4.0037499999998545},{"name":"hashPreCodeTags","time":0.1474811499999987,"maxTime":0.5584039999998822,"minTime":0.1087880000000041},{"name":"headers","time":1.1759319999999889,"maxTime":4.491336000000047,"minTime":0.8841640000000552},{"name":"horizontalRule","time":0.21614389999997458,"maxTime":0.2636819999997897,"minTime":0.19316600000001927},{"name":"images","time":0.15570804999995289,"maxTime":0.5587049999999181,"minTime":0.11782799999991767},{"name":"italicsAndBold","time":0.3219485000000077,"maxTime":1.012539999999717,"minTime":0.2365599999998267},{"name":"lists","time":2.753399100000024,"maxTime":5.612964000000375,"minTime":2.3276349999996455},{"name":"outdent","time":0.16286519999998744,"maxTime":0.2323420000002443,"minTime":0.1398269999999684},{"name":"paragraphs","time":5.108954950000021,"maxTime":6.168355000000247,"minTime":4.741155999999592},{"name":"spanGamut","time":4.422869150000042,"maxTime":6.14906800000017,"minTime":4.000737000000299},{"name":"strikethrough","time":0.0028779999999869687,"maxTime":0.051230000000032305,"minTime":0},{"name":"stripLinkDefinitions","time":0.1603637499999877,"maxTime":0.2257119999999304,"minTime":0.14193599999998696},{"name":"tables","time":0.002470999999968626,"maxTime":0.04339399999980742,"minTime":0},{"name":"unescapeSpecialChars","time":0.011074649999977737,"maxTime":0.04640800000015588,"minTime":0.006628999999975349}]}],"1.7.1":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":1.0738219599999979,"maxTime":20.566299000000072,"minTime":0.3242529999999988},{"name":"performance.testfile.md","time":30.4629232,"maxTime":82.115725,"minTime":26.02165500000001}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.232850950000011,"maxTime":9.06222600000001,"minTime":2.35927700000002},{"name":"anchors","time":0.35050129999999624,"maxTime":0.7627189999998336,"minTime":0.28568100000029517},{"name":"autoLinks","time":0.08923019999999723,"maxTime":0.19015300000000934,"minTime":0.06509199999982229},{"name":"blockQuotes","time":2.073701349999965,"maxTime":4.988563999999769,"minTime":1.7291510000000017},{"name":"codeBlocks","time":0.2560277500000211,"maxTime":0.9369000000001506,"minTime":0.1790019999998549},{"name":"codeSpans","time":0.24160820000001876,"maxTime":0.8386599999998907,"minTime":0.1576060000002144},{"name":"detab","time":0.09915939999998499,"maxTime":0.16815399999995861,"minTime":0.08618599999999788},{"name":"encodeAmpsAndAngles","time":0.13123839999998382,"maxTime":0.646096999999827,"minTime":0.09311699999989287},{"name":"encodeBackslashEscapes","time":0.07607604999996057,"maxTime":0.1404299999999239,"minTime":0.07021399999985078},{"name":"encodeCode","time":0.9938553500000807,"maxTime":1.7056470000002264,"minTime":0.8648769999999786},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.26711740000000644,"maxTime":0.37518199999976787,"minTime":0.24951800000008006},{"name":"githubCodeBlocks","time":0.19164420000001883,"maxTime":0.9664330000000518,"minTime":0.14012899999988804},{"name":"hashBlock","time":0.05914020000000164,"maxTime":0.39748199999985445,"minTime":0.03646299999991243},{"name":"hashElement","time":0.0017327499999964858,"maxTime":0.030737999999928434,"minTime":0},{"name":"hashHTMLSpans","time":4.116996499999937,"maxTime":5.5849379999999655,"minTime":3.89044100000001},{"name":"hashPreCodeTags","time":0.1423884499999531,"maxTime":0.5294739999999365,"minTime":0.1081850000000486},{"name":"headers","time":1.1452692999999954,"maxTime":4.103494999999839,"minTime":0.8639729999999872},{"name":"horizontalRule","time":0.21682209999996757,"maxTime":0.36583999999993466,"minTime":0.19407000000001062},{"name":"images","time":0.15055509999997413,"maxTime":0.5526780000000144,"minTime":0.11662299999989045},{"name":"italicsAndBold","time":0.3119285999999647,"maxTime":1.2412650000001122,"minTime":0.23625899999979083},{"name":"lists","time":4.022899600000005,"maxTime":7.077227000000221,"minTime":2.4975970000000416},{"name":"outdent","time":0.17451229999999213,"maxTime":0.26066899999977977,"minTime":0.14826499999981024},{"name":"paragraphs","time":6.5566433999999845,"maxTime":8.645457999999962,"minTime":4.997002000000066},{"name":"spanGamut","time":5.072655700000018,"maxTime":6.34705299999996,"minTime":4.136643999999706},{"name":"strikethrough","time":0.006192800000076204,"maxTime":0.11029400000006717,"minTime":0},{"name":"stripLinkDefinitions","time":0.16428144999997585,"maxTime":0.27694100000007893,"minTime":0.1416349999999511},{"name":"tables","time":0.004354600000010578,"maxTime":0.08015999999997803,"minTime":0},{"name":"unescapeSpecialChars","time":0.009130899999991015,"maxTime":0.04580600000008417,"minTime":0.006930999999894993}]}],"1.7.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.39255787999999486,"maxTime":9.953321000000074,"minTime":0.09673299999997198},{"name":"performance.testfile.md","time":29.416470079999975,"maxTime":54.25341800000001,"minTime":25.948727999999846}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.0619999999999665,"maxTime":7.184810000000198,"minTime":2.325826999999663},{"name":"anchors","time":0.4883242500000051,"maxTime":4.085716999999931,"minTime":0.28085900000041875},{"name":"autoLinks","time":0.08583980000000793,"maxTime":0.19979499999999462,"minTime":0.06298299999980372},{"name":"blockQuotes","time":2.071019450000017,"maxTime":4.554016000000047,"minTime":1.7333710000002611},{"name":"codeBlocks","time":0.2531195000000025,"maxTime":0.8639729999999872,"minTime":0.17809799999986353},{"name":"codeSpans","time":0.2609549000000243,"maxTime":0.5924559999998564,"minTime":0.15971599999966202},{"name":"detab","time":0.09453374999998232,"maxTime":0.1298820000001797,"minTime":0.08859699999993609},{"name":"encodeAmpsAndAngles","time":0.10304694999997537,"maxTime":0.19196099999999205,"minTime":0.09462400000029447},{"name":"encodeBackslashEscapes","time":0.1064521499999728,"maxTime":0.5894419999999627,"minTime":0.07051600000022518},{"name":"encodeCode","time":0.9265486000000009,"maxTime":1.1821999999997388,"minTime":0.8347420000000056},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2759772000000112,"maxTime":0.6171669999998812,"minTime":0.24530000000004293},{"name":"githubCodeBlocks","time":0.1951549499999828,"maxTime":0.9799929999999222,"minTime":0.1386210000000574},{"name":"hashBlock","time":0.062304449999965074,"maxTime":0.4833670000002712,"minTime":0.03495699999984936},{"name":"hashElement","time":0.0014464500000030966,"maxTime":0.024711000000024796,"minTime":0},{"name":"hashHTMLSpans","time":4.1203715999999755,"maxTime":4.609765000000152,"minTime":3.8587989999996353},{"name":"hashPreCodeTags","time":0.14734550000000582,"maxTime":0.5351989999999205,"minTime":0.10487000000011903},{"name":"headers","time":1.3076671999999916,"maxTime":4.252966000000015,"minTime":0.8564390000001367},{"name":"horizontalRule","time":0.2203779999999597,"maxTime":0.3742779999997765,"minTime":0.19407000000001062},{"name":"images","time":0.15025354999997945,"maxTime":0.506872000000385,"minTime":0.1163219999998546},{"name":"italicsAndBold","time":0.30579589999997553,"maxTime":0.872110000000248,"minTime":0.24138200000015786},{"name":"lists","time":3.447394599999984,"maxTime":4.893336999999974,"minTime":2.407492000000275},{"name":"outdent","time":0.26698190000001887,"maxTime":0.8684939999998278,"minTime":0.1808109999997214},{"name":"paragraphs","time":5.866655149999997,"maxTime":8.331147999999757,"minTime":4.9695779999997285},{"name":"spanGamut","time":5.038527899999986,"maxTime":7.123635999999806,"minTime":4.11615299999994},{"name":"strikethrough","time":0.003992900000002919,"maxTime":0.07322800000019924,"minTime":0},{"name":"stripLinkDefinitions","time":0.15298084999997172,"maxTime":0.24288900000010472,"minTime":0.13952599999993254},{"name":"tables","time":0.0024410000000443686,"maxTime":0.043695999999727064,"minTime":0},{"name":"unescapeSpecialChars","time":0.008663700000033714,"maxTime":0.0406820000002881,"minTime":0.006628999999975349}]}],"1.6.4":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.37575447999999595,"maxTime":6.3811059999999316,"minTime":0.182617999999934},{"name":"performance.testfile.md","time":33.83478732000001,"maxTime":61.04858100000001,"minTime":30.186325000000124}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.5643760500000328,"maxTime":8.346818999999869,"minTime":1.8710879999998724},{"name":"anchors","time":0.4985702000000174,"maxTime":4.221624999999676,"minTime":0.27031199999964883},{"name":"autoLinks","time":0.08000864999996793,"maxTime":0.17357799999990675,"minTime":0.06087299999990137},{"name":"blockQuotes","time":3.3429765499999804,"maxTime":7.305651000000125,"minTime":2.8504790000001776},{"name":"codeBlocks","time":0.22134235000003172,"maxTime":0.8220859999996719,"minTime":0.17176999999992404},{"name":"codeSpans","time":0.22901160000001256,"maxTime":0.7443360000002031,"minTime":0.15579799999977695},{"name":"detab","time":0.0973213499999929,"maxTime":0.15429100000028484,"minTime":0.08618699999988166},{"name":"encodeAmpsAndAngles","time":0.11678870000000643,"maxTime":0.19979600000033315,"minTime":0.09432200000037483},{"name":"encodeBackslashEscapes","time":0.08623155000002498,"maxTime":0.2296289999999317,"minTime":0.06810499999983222},{"name":"encodeCode","time":0.8853238499999861,"maxTime":1.1647219999999834,"minTime":0.8163599999998041},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2983526000000438,"maxTime":0.4954210000000785,"minTime":0.2401769999996759},{"name":"githubCodeBlocks","time":0.18343240000001515,"maxTime":0.7847170000000006,"minTime":0.1331980000004478},{"name":"hashBlock","time":0.0443587499999694,"maxTime":0.09763799999973344,"minTime":0.035257999999885214},{"name":"hashElement","time":0.00200395000001663,"maxTime":0.03345000000035725,"minTime":0},{"name":"hashHTMLSpans","time":4.199521549999963,"maxTime":4.551605000000109,"minTime":3.9874759999997877},{"name":"hashPreCodeTags","time":0.1295205500000293,"maxTime":0.3134050000003299,"minTime":0.10637700000006589},{"name":"headers","time":1.2236204000000044,"maxTime":4.009776000000329,"minTime":0.944735000000037},{"name":"horizontalRule","time":0.41190154999999323,"maxTime":4.175217999999859,"minTime":0.19648000000006505},{"name":"images","time":0.08806979999997111,"maxTime":0.20250800000030722,"minTime":0.0732279999997445},{"name":"italicsAndBold","time":0.2764291999999841,"maxTime":0.4137550000000374,"minTime":0.23324500000035187},{"name":"lists","time":5.0047764500000085,"maxTime":6.109288000000106,"minTime":4.663406000000123},{"name":"outdent","time":0.1521370000000161,"maxTime":0.3366089999999531,"minTime":0.13922500000035143},{"name":"paragraphs","time":5.336081549999994,"maxTime":7.117005000000063,"minTime":4.843312999999853},{"name":"spanGamut","time":4.449883849999901,"maxTime":6.152983999999833,"minTime":3.8569910000001073},{"name":"strikethrough","time":0.002606700000001183,"maxTime":0.04881900000009409,"minTime":0},{"name":"stripLinkDefinitions","time":0.18040370000001077,"maxTime":0.3161169999998492,"minTime":0.14705999999978303},{"name":"tables","time":0.0031190500000320754,"maxTime":0.05544899999995323,"minTime":0},{"name":"unescapeSpecialChars","time":0.009281650000002629,"maxTime":0.047313000000031025,"minTime":0.006628999999975349}]}],"1.6.3":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3880986600000119,"maxTime":6.064399999999978,"minTime":0.17418099999997594},{"name":"performance.testfile.md","time":26.898552680000012,"maxTime":49.06275100000005,"minTime":24.84523399999989}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.6158222500000194,"maxTime":8.18079200000011,"minTime":1.8985149999998612},{"name":"anchors","time":0.5154769000000442,"maxTime":4.690839000000324,"minTime":0.2639840000001641},{"name":"autoLinks","time":0.09307249999999385,"maxTime":0.18834400000014284,"minTime":0.07262600000012753},{"name":"blockQuotes","time":4.5183903999999755,"maxTime":8.952854000000116,"minTime":3.035816000000068},{"name":"codeBlocks","time":0.22262349999998604,"maxTime":0.347758999999769,"minTime":0.18834500000002663},{"name":"codeSpans","time":0.31763950000004115,"maxTime":1.0948100000000522,"minTime":0.1771950000002107},{"name":"detab","time":0.0919273999999632,"maxTime":0.13651200000003882,"minTime":0.08739199999990888},{"name":"encodeAmpsAndAngles","time":0.0438916999999492,"maxTime":0.08919999999989159,"minTime":0.038271000000349886},{"name":"encodeBackslashEscapes","time":0.10785369999998692,"maxTime":0.2651890000001913,"minTime":0.07835100000011153},{"name":"encodeCode","time":1.5346329500000138,"maxTime":9.895783999999821,"minTime":0.8645779999997103},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2937122499999759,"maxTime":0.5234480000003714,"minTime":0.25343700000030367},{"name":"githubCodeBlocks","time":0.20775164999997742,"maxTime":0.7901440000000548,"minTime":0.1416349999999511},{"name":"hashBlock","time":0.042234400000006646,"maxTime":0.12325299999974959,"minTime":0.035860999999840715},{"name":"hashElement","time":0.0016724999999951252,"maxTime":0.028929000000061933,"minTime":0},{"name":"hashHTMLSpans","time":0.4103353000000197,"maxTime":1.5980680000002394,"minTime":0.2404790000000503},{"name":"hashPreCodeTags","time":0.13196184999997057,"maxTime":0.3950719999998,"minTime":0.11029400000006717},{"name":"headers","time":1.0150126000000683,"maxTime":1.501936999999998,"minTime":0.8055130000002464},{"name":"horizontalRule","time":0.22018260000002102,"maxTime":0.35710100000005696,"minTime":0.1946739999998499},{"name":"images","time":0.1582398000000012,"maxTime":0.978186999999707,"minTime":0.07684500000004846},{"name":"italicsAndBold","time":0.28757974999998626,"maxTime":0.6394679999998516,"minTime":0.24078000000008615},{"name":"lists","time":5.151319100000023,"maxTime":6.331397000000379,"minTime":4.629061999999976},{"name":"outdent","time":0.18019314999994548,"maxTime":0.36342999999988024,"minTime":0.14253999999982625},{"name":"paragraphs","time":4.547636500000022,"maxTime":6.308794999999918,"minTime":4.002250999999887},{"name":"spanGamut","time":1.5190982500000245,"maxTime":1.863557999999557,"minTime":1.3720530000000508},{"name":"strikethrough","time":0.003450399999996989,"maxTime":0.06539299999985815,"minTime":0},{"name":"stripLinkDefinitions","time":0.1786111499999606,"maxTime":0.3128030000002582,"minTime":0.1443480000002637},{"name":"tables","time":0.0035106999999925392,"maxTime":0.06268099999988408,"minTime":0.00030099999958110857},{"name":"unescapeSpecialChars","time":0.01146649999998317,"maxTime":0.04881900000009409,"minTime":0.006628999999975349}]}],"1.6.2":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.6130621400000001,"maxTime":5.893518999999998,"minTime":0.16875699999999938},{"name":"performance.testfile.md","time":25.970254839999992,"maxTime":62.88168,"minTime":23.709682999999927}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.6685977000000323,"maxTime":8.478507000000036,"minTime":1.8846490000000813},{"name":"anchors","time":0.5002727000000278,"maxTime":3.841318999999885,"minTime":0.2676000000001295},{"name":"autoLinks","time":0.09846654999997781,"maxTime":0.21064500000011321,"minTime":0.07202299999994466},{"name":"blockQuotes","time":3.221817550000014,"maxTime":5.825714999999946,"minTime":2.791112000000112},{"name":"codeBlocks","time":0.17663659999998343,"maxTime":0.3712639999998828,"minTime":0.1570040000001427},{"name":"codeSpans","time":0.2181328999999778,"maxTime":0.483066000000008,"minTime":0.15097700000001169},{"name":"detab","time":0.13492999999998573,"maxTime":0.6545340000000124,"minTime":0.08498099999997066},{"name":"encodeAmpsAndAngles","time":0.04158639999994875,"maxTime":0.11752699999988181,"minTime":0.03616199999987657},{"name":"encodeBackslashEscapes","time":0.0800689000000034,"maxTime":0.13319799999999304,"minTime":0.06780399999979636},{"name":"encodeCode","time":0.5599700499999927,"maxTime":0.9821019999999407,"minTime":0.48396900000011556},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.35280645000001415,"maxTime":0.5683480000000145,"minTime":0.2914060000000518},{"name":"githubCodeBlocks","time":0.17996669999999995,"maxTime":0.7729650000001129,"minTime":0.1274710000000141},{"name":"hashBlock","time":0.057723849999990764,"maxTime":0.31159699999989243,"minTime":0.037368000000014945},{"name":"hashElement","time":0.0025463500000000748,"maxTime":0.04610600000000886,"minTime":0},{"name":"hashHTMLSpans","time":0.47458235000001425,"maxTime":2.325223000000051,"minTime":0.2344510000000355},{"name":"hashPreCodeTags","time":0.12186629999998785,"maxTime":0.3073779999999715,"minTime":0.10697999999979402},{"name":"headers","time":0.8577350000000024,"maxTime":0.9540770000000975,"minTime":0.7801970000000438},{"name":"horizontalRule","time":0.22663095000001476,"maxTime":0.41797300000007453,"minTime":0.1967819999999847},{"name":"images","time":0.17053435000000264,"maxTime":1.4528119999999944,"minTime":0.07714599999985694},{"name":"italicsAndBold","time":0.10093754999998054,"maxTime":0.20220699999981662,"minTime":0.0882960000001276},{"name":"lists","time":4.9306124000000064,"maxTime":5.460477999999966,"minTime":4.55642499999999},{"name":"outdent","time":0.16260889999998654,"maxTime":0.31461000000012973,"minTime":0.1416349999999511},{"name":"paragraphs","time":3.7896679000000177,"maxTime":5.563840999999911,"minTime":3.278396000000157},{"name":"spanGamut","time":1.4417527499999891,"maxTime":2.0124210000001312,"minTime":1.2032939999999144},{"name":"strikethrough","time":0.004233999999985372,"maxTime":0.08196800000018811,"minTime":0},{"name":"stripBlankLines","time":0.08623144999999113,"maxTime":0.1304850000001352,"minTime":0.0804600000001301},{"name":"stripLinkDefinitions","time":0.15983660000002828,"maxTime":0.21727400000008856,"minTime":0.1446480000001884},{"name":"tables","time":0.004143600000008974,"maxTime":0.07593999999994594,"minTime":0},{"name":"unescapeSpecialChars","time":0.00991439999999102,"maxTime":0.0581609999999273,"minTime":0.006628999999975349}]}],"1.6.1":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3172682400000001,"maxTime":5.4981469999999995,"minTime":0.16062000000000154},{"name":"readme.md","time":26.0144148,"maxTime":46.79858399999999,"minTime":24.245484999999917}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.6414157500000215,"maxTime":7.791727999999921,"minTime":1.9364810000001853},{"name":"anchors","time":0.47462755000000245,"maxTime":4.062812000000122,"minTime":0.25885999999991327},{"name":"autoLinks","time":0.08906409999998459,"maxTime":0.19708299999979317,"minTime":0.06870800000001509},{"name":"blockQuotes","time":3.213485000000014,"maxTime":6.05383699999993,"minTime":2.880010000000084},{"name":"codeBlocks","time":0.16200620000001892,"maxTime":0.2691060000001926,"minTime":0.15308599999980288},{"name":"codeSpans","time":0.169494799999984,"maxTime":0.39868699999988166,"minTime":0.1410319999999956},{"name":"detab","time":0.12471390000000611,"maxTime":0.6647800000000643,"minTime":0.08558400000015354},{"name":"encodeAmpsAndAngles","time":0.04181244999999763,"maxTime":0.08920000000011896,"minTime":0.03796999999985928},{"name":"encodeBackslashEscapes","time":0.07586505000000443,"maxTime":0.13289599999984603,"minTime":0.06810500000005959},{"name":"encodeCode","time":0.5765897500000051,"maxTime":0.970348999999942,"minTime":0.4791480000001229},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.24603789999998754,"maxTime":0.35047099999997045,"minTime":0.22119199999997363},{"name":"githubCodeBlocks","time":0.1767573999999968,"maxTime":0.815454999999929,"minTime":0.1250600000000759},{"name":"hashBlock","time":0.06537804999999253,"maxTime":0.42972599999984595,"minTime":0.0376690000000508},{"name":"hashElement","time":0.0020039500000052614,"maxTime":0.034051999999974214,"minTime":0},{"name":"hashHTMLSpans","time":0.42437735000000887,"maxTime":2.3210050000000138,"minTime":0.24078000000008615},{"name":"hashPreCodeTags","time":0.12225794999998243,"maxTime":0.23836899999992056,"minTime":0.10396600000012768},{"name":"headers","time":0.8037480999999957,"maxTime":0.9462419999999838,"minTime":0.7256529999999657},{"name":"horizontalRule","time":0.2186149999999884,"maxTime":0.27362700000003315,"minTime":0.19437100000004648},{"name":"images","time":0.12388539999997192,"maxTime":0.9019430000000739,"minTime":0.07081799999991745},{"name":"italicsAndBold","time":0.10089220000002115,"maxTime":0.15037400000005618,"minTime":0.08950099999992744},{"name":"lists","time":4.938929699999983,"maxTime":5.421000999999933,"minTime":4.623625999999831},{"name":"outdent","time":0.1648239000000217,"maxTime":0.3372110000000248,"minTime":0.1404290000000401},{"name":"paragraphs","time":3.4947812,"maxTime":4.554917999999816,"minTime":3.1714170000000195},{"name":"spanGamut","time":1.318997649999983,"maxTime":1.9916279999999915,"minTime":1.1469409999999698},{"name":"strikethrough","time":0.007458499999995638,"maxTime":0.14314200000012534,"minTime":0},{"name":"stripBlankLines","time":0.09447364999999763,"maxTime":0.1545929999999771,"minTime":0.0822689999999966},{"name":"stripLinkDefinitions","time":0.1762751000000094,"maxTime":0.3112949999999728,"minTime":0.1464570000000549},{"name":"tables","time":0.0023505499999828317,"maxTime":0.03947699999980614,"minTime":0},{"name":"unescapeSpecialChars","time":0.008332400000006146,"maxTime":0.03375200000004952,"minTime":0.0066299999998591375}]}],"1.6.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3075345600000001,"maxTime":5.369168,"minTime":0.1570040000000006},{"name":"readme.md","time":25.81825956,"maxTime":47.795452,"minTime":23.775378000000046}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.652987649999966,"maxTime":8.557761999999911,"minTime":1.8804290000000492},{"name":"anchors","time":0.5166509500000303,"maxTime":4.142066999999997,"minTime":0.27121600000009494},{"name":"autoLinks","time":0.0885518999999931,"maxTime":0.19437100000004648,"minTime":0.0705159999999978},{"name":"blockGamut","time":17.371581599999978,"maxTime":22.94093699999985,"minTime":14.081522999999834},{"name":"blockQuotes","time":3.011308699999995,"maxTime":4.110426000000189,"minTime":2.7742359999999735},{"name":"codeBlocks","time":0.24291900000000624,"maxTime":0.8344409999999698,"minTime":0.19346700000005512},{"name":"codeSpans","time":0.2271433000000002,"maxTime":0.4583549999999832,"minTime":0.19135800000003655},{"name":"detab","time":0.09469964999999547,"maxTime":0.13289599999984603,"minTime":0.08950099999992744},{"name":"encodeAmpsAndAngles","time":0.040486450000014426,"maxTime":0.07262600000012753,"minTime":0.03766799999993964},{"name":"encodeBackslashEscapes","time":0.09959649999997282,"maxTime":0.5095850000000155,"minTime":0.06840699999997923},{"name":"encodeCode","time":0.5320952499999863,"maxTime":0.7057630000001609,"minTime":0.4794489999999314},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.38607564999999794,"maxTime":0.7018459999999322,"minTime":0.326663999999937},{"name":"githubCodeBlocks","time":0.21441115000002356,"maxTime":0.7780880000000252,"minTime":0.15579800000000432},{"name":"hashBlock","time":0.056638900000007195,"maxTime":0.27995499999997264,"minTime":0.035257999999885214},{"name":"hashElement","time":0.001958799999999883,"maxTime":0.033148999999866646,"minTime":0},{"name":"hashHTMLSpans","time":0.38414695000003574,"maxTime":1.9973540000000867,"minTime":0.2356569999999465},{"name":"hashPreCodeTags","time":0.1327451500000393,"maxTime":0.20009700000014163,"minTime":0.1157189999998991},{"name":"headers","time":0.9440720999999825,"maxTime":2.4683650000001762,"minTime":0.7823069999999461},{"name":"images","time":0.12035954999996648,"maxTime":0.4857769999998709,"minTime":0.08588499999996202},{"name":"italicsAndBold","time":0.11076150000000098,"maxTime":0.4447930000001179,"minTime":0.08799499999986438},{"name":"lists","time":5.782546349999995,"maxTime":13.248890999999958,"minTime":4.463608999999906},{"name":"outdent","time":0.3057505000000219,"maxTime":0.9561860000001161,"minTime":0.22541000000001077},{"name":"paragraphs","time":6.582542549999971,"maxTime":8.810596000000032,"minTime":4.498867000000246},{"name":"spanGamut","time":2.43690389999997,"maxTime":3.067450000000008,"minTime":1.6474849999999606},{"name":"strikethrough","time":0.005228549999992537,"maxTime":0.10035000000016225,"minTime":0},{"name":"stripBlankLines","time":0.12142940000005638,"maxTime":0.17508399999996982,"minTime":0.09191199999986566},{"name":"stripLinkDefinitions","time":0.24673084999997172,"maxTime":0.572566000000279,"minTime":0.17146900000034293},{"name":"tables","time":0.005650249999962398,"maxTime":0.0985419999997248,"minTime":0.00030099999958110857},{"name":"unescapeSpecialChars","time":0.016694800000050237,"maxTime":0.06569400000034875,"minTime":0.011450999999851774}]}]} \ No newline at end of file +{"2.0.0-alpha1":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3295993199999703,"maxTime":9.462411999999858,"minTime":0.08558300000004238},{"name":"performance.testfile.md","time":32.21012696000001,"maxTime":56.634641999999985,"minTime":27.394886999999926}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.054658400000017,"maxTime":7.506043000000318,"minTime":2.412612999999965},{"name":"anchors","time":0.3422439500000337,"maxTime":0.5999899999997069,"minTime":0.2859809999999925},{"name":"autoLinks","time":0.0914297999999917,"maxTime":0.19316600000001927,"minTime":0.07021499999973457},{"name":"blockQuotes","time":2.8961157999999614,"maxTime":5.99115299999994,"minTime":1.9874079999999594},{"name":"codeBlocks","time":0.30285735000002206,"maxTime":1.577871999999843,"minTime":0.1898510000000897},{"name":"codeSpans","time":0.2851982500000304,"maxTime":0.5330900000003567,"minTime":0.23746500000015658},{"name":"detab","time":0.13642154999995454,"maxTime":0.8733140000003914,"minTime":0.08648799999991752},{"name":"encodeAmpsAndAngles","time":0.10381534999999076,"maxTime":0.16604400000005626,"minTime":0.0967329999998583},{"name":"encodeBackslashEscapes","time":0.08116885000008552,"maxTime":0.1410319999999956,"minTime":0.06840599999986807},{"name":"encodeCode","time":0.9420372499999985,"maxTime":1.3416130000000521,"minTime":0.8504109999998946},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.21206050000000687,"maxTime":0.43575300000020434,"minTime":0.1585109999996348},{"name":"githubCodeBlocks","time":0.1756723499999225,"maxTime":0.3049670000000333,"minTime":0.14284100000031685},{"name":"hashBlock","time":0.04682985000001736,"maxTime":0.09371999999984837,"minTime":0.035859999999956926},{"name":"hashElement","time":0.002938149999977213,"maxTime":0.04610599999978149,"minTime":0.0006019999996169645},{"name":"hashHTMLSpans","time":4.2764674000000245,"maxTime":5.772070999999869,"minTime":3.9645690000002105},{"name":"hashPreCodeTags","time":0.14422639999997955,"maxTime":0.32425300000022617,"minTime":0.10999300000003132},{"name":"headers","time":1.4178700999999592,"maxTime":4.437690000000202,"minTime":1.0619599999999991},{"name":"horizontalRule","time":0.22733904999997775,"maxTime":0.40320699999983844,"minTime":0.19527500000003783},{"name":"images","time":0.17464789999999084,"maxTime":0.43484899999975823,"minTime":0.12867699999969773},{"name":"italicsAndBold","time":0.3753021499999932,"maxTime":2.406887999999981,"minTime":0.22812300000032337},{"name":"lists","time":2.918400549999956,"maxTime":3.7162560000001577,"minTime":2.5262219999999616},{"name":"outdent","time":0.16441669999999248,"maxTime":0.26970799999980954,"minTime":0.1377169999996113},{"name":"paragraphs","time":6.44426390000001,"maxTime":8.106032000000141,"minTime":5.7588120000000345},{"name":"spanGamut","time":4.293749849999995,"maxTime":6.106268999999884,"minTime":3.8419189999999617},{"name":"strikethrough","time":0.005092600000057246,"maxTime":0.08950099999992744,"minTime":0.0003010000000358559},{"name":"stripLinkDefinitions","time":0.2301113500000156,"maxTime":0.2862839999997959,"minTime":0.22088999999959924},{"name":"tables","time":0.002440799999999399,"maxTime":0.03375099999993836,"minTime":0.0006019999996169645},{"name":"unescapeSpecialChars","time":0.011044549999951414,"maxTime":0.07985800000005838,"minTime":0.007231999999930849}]}],"1.9.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.47623109999999996,"maxTime":9.944885,"minTime":0.0876940000000559},{"name":"performance.testfile.md","time":32.20845420000003,"maxTime":61.88545199999999,"minTime":28.234484000000066}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.827436050000029,"maxTime":23.030151000000387,"minTime":2.428888999999799},{"name":"anchors","time":0.36267595000003894,"maxTime":0.6361520000000382,"minTime":0.2944200000001729},{"name":"autoLinks","time":0.11954594999999699,"maxTime":0.3191310000001977,"minTime":0.07081800000014482},{"name":"blockQuotes","time":2.8835528000000297,"maxTime":6.237062000000151,"minTime":2.040447000000313},{"name":"codeBlocks","time":0.2899901999999884,"maxTime":1.1309700000001612,"minTime":0.18894700000009834},{"name":"codeSpans","time":0.31439960000000156,"maxTime":0.8751229999998031,"minTime":0.23414999999977226},{"name":"detab","time":0.09471464999996897,"maxTime":0.14133399999991525,"minTime":0.08558300000004238},{"name":"encodeAmpsAndAngles","time":0.15546699999999875,"maxTime":1.1864189999996597,"minTime":0.09462400000029447},{"name":"encodeBackslashEscapes","time":0.08662335000003622,"maxTime":0.14434700000037992,"minTime":0.06931000000031418},{"name":"encodeCode","time":0.9182015000000092,"maxTime":1.278632000000016,"minTime":0.865179000000353},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2454204000000118,"maxTime":0.7105860000001485,"minTime":0.1564010000001872},{"name":"githubCodeBlocks","time":0.1596106000000191,"maxTime":0.2905020000002878,"minTime":0.1422379999999066},{"name":"hashBlock","time":0.042761799999971116,"maxTime":0.06659899999976915,"minTime":0.037669000000278174},{"name":"hashElement","time":0.002787500000044929,"maxTime":0.034654999999929714,"minTime":0.0003010000000358559},{"name":"hashHTMLSpans","time":4.27261539999995,"maxTime":6.303661999999804,"minTime":3.9832579999997506},{"name":"hashPreCodeTags","time":0.13292590000003202,"maxTime":0.34384200000022247,"minTime":0.10999300000003132},{"name":"headers","time":1.453898150000009,"maxTime":3.8741690000001654,"minTime":1.0984250000001339},{"name":"horizontalRule","time":0.23021724999998697,"maxTime":0.30014500000015687,"minTime":0.20190500000035172},{"name":"images","time":0.19111685000000306,"maxTime":0.4761349999998856,"minTime":0.13530599999967308},{"name":"italicsAndBold","time":0.30972870000000513,"maxTime":0.8660830000003443,"minTime":0.23565599999983533},{"name":"lists","time":3.1345930500000123,"maxTime":4.249350999999933,"minTime":2.6624360000000706},{"name":"outdent","time":0.16700869999999668,"maxTime":0.2621750000002976,"minTime":0.1398260000000846},{"name":"paragraphs","time":6.382811100000003,"maxTime":7.885451999999987,"minTime":5.680467000000135},{"name":"spanGamut","time":4.106134100000008,"maxTime":5.309806000000208,"minTime":3.6981800000003204},{"name":"strikethrough","time":0.004791549999981726,"maxTime":0.08678899999995338,"minTime":0.0003010000000358559},{"name":"stripLinkDefinitions","time":0.24528460000003632,"maxTime":0.3763870000002498,"minTime":0.220890000000054},{"name":"tables","time":0.00311890000002677,"maxTime":0.049421000000165805,"minTime":0.0006020000000717118},{"name":"unescapeSpecialChars","time":0.01015549999999621,"maxTime":0.0569550000000163,"minTime":0.006930999999894993}]}],"1.8.4":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.7357727200000045,"maxTime":11.075555000000008,"minTime":0.11662300000000414},{"name":"performance.testfile.md","time":32.917593419999996,"maxTime":62.42667800000004,"minTime":27.940666000000192}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.259524950000037,"maxTime":17.332808000000114,"minTime":2.340292000000318},{"name":"anchors","time":0.5218948500000351,"maxTime":2.8983949999997094,"minTime":0.306775000000016},{"name":"autoLinks","time":0.12436755000001085,"maxTime":0.30014600000004066,"minTime":0.07142100000010032},{"name":"blockQuotes","time":2.24432690000001,"maxTime":3.3329420000000027,"minTime":2.0148330000001806},{"name":"codeBlocks","time":0.24412445000000388,"maxTime":0.8169630000002144,"minTime":0.19015300000000934},{"name":"codeSpans","time":0.3541780499999959,"maxTime":1.2014869999998155,"minTime":0.24288900000010472},{"name":"detab","time":0.09634199999998146,"maxTime":0.1431420000003527,"minTime":0.08769299999994473},{"name":"encodeAmpsAndAngles","time":0.1376722000000427,"maxTime":0.19768599999997605,"minTime":0.09613100000024133},{"name":"encodeBackslashEscapes","time":0.0932680999999775,"maxTime":0.1841260000001057,"minTime":0.07051599999977043},{"name":"encodeCode","time":0.9610537499999964,"maxTime":1.6110220000000481,"minTime":0.8582480000000032},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2516583999999966,"maxTime":0.5204329999996844,"minTime":0.1582090000001699},{"name":"githubCodeBlocks","time":0.26234104999991814,"maxTime":0.3896469999999681,"minTime":0.16092100000014398},{"name":"hashBlock","time":0.051877600000034364,"maxTime":0.12867700000015247,"minTime":0.03736699999990378},{"name":"hashElement","time":0.002682149999986905,"maxTime":0.040380999999797496,"minTime":0.0003020000003743917},{"name":"hashHTMLSpans","time":4.239888850000034,"maxTime":4.673051000000214,"minTime":4.043529000000035},{"name":"hashPreCodeTags","time":0.13398059999999531,"maxTime":0.3372110000000248,"minTime":0.11270500000000538},{"name":"headers","time":1.4121460499999785,"maxTime":4.474761999999828,"minTime":1.076727000000119},{"name":"horizontalRule","time":0.3580051499999854,"maxTime":2.6859419999996135,"minTime":0.19648099999994884},{"name":"images","time":0.18359815000001162,"maxTime":0.4803540000002613,"minTime":0.13048499999968044},{"name":"italicsAndBold","time":0.29952790000002094,"maxTime":0.4577519999998003,"minTime":0.23414999999977226},{"name":"lists","time":3.073871250000002,"maxTime":4.651354000000083,"minTime":2.6256719999996676},{"name":"outdent","time":0.20359270000003563,"maxTime":0.9311750000001666,"minTime":0.13681300000007468},{"name":"paragraphs","time":6.405547999999953,"maxTime":8.019855000000007,"minTime":5.821198000000095},{"name":"spanGamut","time":4.135636349999913,"maxTime":6.038471999999729,"minTime":3.839814999999817},{"name":"strikethrough","time":0.007217349999996259,"maxTime":0.1319909999997435,"minTime":0.0003010000000358559},{"name":"stripLinkDefinitions","time":0.24829814999998234,"maxTime":0.40260499999976673,"minTime":0.21667100000013306},{"name":"tables","time":0.0033450000000129878,"maxTime":0.04008000000021639,"minTime":0.0006029999999555002},{"name":"unescapeSpecialChars","time":0.009387199999969198,"maxTime":0.03947699999980614,"minTime":0.006930999999894993}]}],"1.8.3":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.9269011799999908,"maxTime":32.65378700000008,"minTime":0.14705900000001293},{"name":"performance.testfile.md","time":32.484542280000035,"maxTime":62.282010000000014,"minTime":28.40262900000016}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.454346750000013,"maxTime":18.356191000000308,"minTime":2.3848909999996977},{"name":"anchors","time":0.504325800000015,"maxTime":3.1102430000000822,"minTime":0.2902009999997972},{"name":"autoLinks","time":0.11421199999999772,"maxTime":0.28417399999989357,"minTime":0.06931099999974322},{"name":"blockQuotes","time":2.268720650000046,"maxTime":3.373623999999836,"minTime":1.996752000000015},{"name":"codeBlocks","time":0.2502117500000395,"maxTime":0.8398649999999179,"minTime":0.19196000000010827},{"name":"codeSpans","time":0.3517671000000064,"maxTime":1.230717999999797,"minTime":0.2486149999999725},{"name":"detab","time":0.11473945000000185,"maxTime":0.17900200000030964,"minTime":0.08739199999990888},{"name":"encodeAmpsAndAngles","time":0.10544264999996358,"maxTime":0.16212700000005498,"minTime":0.09462399999983973},{"name":"encodeBackslashEscapes","time":0.10833570000006602,"maxTime":0.2347530000001825,"minTime":0.07503700000006575},{"name":"encodeCode","time":0.9939308499999925,"maxTime":1.9153870000000097,"minTime":0.8467970000001515},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.23689210000002275,"maxTime":0.4746280000003935,"minTime":0.1600180000000364},{"name":"githubCodeBlocks","time":0.2020106000000169,"maxTime":0.7714579999997113,"minTime":0.15127899999970396},{"name":"hashBlock","time":0.07104355000003579,"maxTime":0.4927090000001044,"minTime":0.03917600000022503},{"name":"hashElement","time":0.0024862499999926515,"maxTime":0.036463999999796215,"minTime":0.0006019999996169645},{"name":"hashHTMLSpans","time":4.161957949999987,"maxTime":4.708306999999877,"minTime":3.9594499999998334},{"name":"hashPreCodeTags","time":0.1303646000000299,"maxTime":0.3314860000000408,"minTime":0.11240400000042428},{"name":"headers","time":1.4091020500000013,"maxTime":4.621517999999924,"minTime":1.043880000000172},{"name":"horizontalRule","time":0.3509834499999897,"maxTime":2.6549019999997654,"minTime":0.19617999999991298},{"name":"images","time":0.19913270000001831,"maxTime":0.5445410000002084,"minTime":0.1307859999997163},{"name":"italicsAndBold","time":0.268699450000031,"maxTime":0.35710100000005696,"minTime":0.23475200000029872},{"name":"lists","time":3.0566478999999847,"maxTime":4.403038999999808,"minTime":2.6856400000001486},{"name":"outdent","time":0.15278490000002876,"maxTime":0.3073779999999715,"minTime":0.13621100000000297},{"name":"paragraphs","time":6.455042899999944,"maxTime":7.90051799999992,"minTime":5.708189999999831},{"name":"spanGamut","time":4.255919250000034,"maxTime":5.54154299999982,"minTime":3.929916999999932},{"name":"strikethrough","time":0.005107850000035797,"maxTime":0.08889899999985573,"minTime":0.0003010000000358559},{"name":"stripLinkDefinitions","time":0.24843364999996992,"maxTime":0.3935639999999694,"minTime":0.22480699999960052},{"name":"tables","time":0.0021395500000380707,"maxTime":0.028025000000070577,"minTime":0.0006020000000717118},{"name":"unescapeSpecialChars","time":0.008935100000007879,"maxTime":0.03887399999985064,"minTime":0.006930999999894993}]}],"1.8.2":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.36118707999999744,"maxTime":8.97694100000001,"minTime":0.10366399999998066},{"name":"performance.testfile.md","time":33.109353200000044,"maxTime":56.477973000000134,"minTime":29.178900000000112}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":5.488247100000035,"maxTime":20.713954999999714,"minTime":2.3207030000003215},{"name":"anchors","time":0.5058775499999456,"maxTime":3.1581569999998464,"minTime":0.29200900000023466},{"name":"autoLinks","time":0.14073085000002267,"maxTime":0.36463400000002366,"minTime":0.07232500000009168},{"name":"blockQuotes","time":2.3000001499999825,"maxTime":3.6421259999997346,"minTime":2.046473999999762},{"name":"codeBlocks","time":0.24317504999999073,"maxTime":0.8772320000002765,"minTime":0.18924799999967945},{"name":"codeSpans","time":0.26844330000001265,"maxTime":1.1755699999998797,"minTime":0.1594150000000809},{"name":"detab","time":0.0950761500000226,"maxTime":0.17207199999984368,"minTime":0.0891990000000078},{"name":"encodeAmpsAndAngles","time":0.10803434999995716,"maxTime":0.22993099999985134,"minTime":0.09733700000015233},{"name":"encodeBackslashEscapes","time":0.07844164999999066,"maxTime":0.11903299999994488,"minTime":0.07413300000007439},{"name":"encodeCode","time":1.0021724500000346,"maxTime":1.5441220000002431,"minTime":0.850713999999698},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.25580170000000635,"maxTime":0.5656359999998131,"minTime":0.16363400000000183},{"name":"githubCodeBlocks","time":0.2531047000000399,"maxTime":0.9986770000000433,"minTime":0.15248300000030213},{"name":"hashBlock","time":0.04166155000000345,"maxTime":0.08015899999963949,"minTime":0.037066000000322674},{"name":"hashElement","time":0.002244949999999335,"maxTime":0.0322439999999915,"minTime":0.00030099999958110857},{"name":"hashHTMLSpans","time":4.444473249999987,"maxTime":5.282380000000103,"minTime":3.9871729999999843},{"name":"hashPreCodeTags","time":0.15179035000001023,"maxTime":0.2648869999998169,"minTime":0.11722499999996217},{"name":"headers","time":1.4647912000000134,"maxTime":4.970481000000291,"minTime":1.0589469999999892},{"name":"horizontalRule","time":0.24510365000001003,"maxTime":0.5623199999999997,"minTime":0.20461699999987104},{"name":"images","time":0.31239540000003674,"maxTime":2.6151230000000396,"minTime":0.1310880000000907},{"name":"italicsAndBold","time":0.287217499999997,"maxTime":0.42671299999983603,"minTime":0.24379300000009607},{"name":"lists","time":3.260661600000026,"maxTime":4.098372000000381,"minTime":2.7923170000003665},{"name":"outdent","time":0.17895719999999074,"maxTime":0.37729099999978644,"minTime":0.1410319999999956},{"name":"paragraphs","time":6.661300749999964,"maxTime":9.04655300000013,"minTime":5.883574999999837},{"name":"spanGamut","time":4.560794749999991,"maxTime":6.1731730000001335,"minTime":4.0085690000000795},{"name":"strikethrough","time":0.005469599999855745,"maxTime":0.09703499999977794,"minTime":0.00030099999958110857},{"name":"stripLinkDefinitions","time":0.25079934999998843,"maxTime":0.4017010000002301,"minTime":0.21576699999968696},{"name":"tables","time":0.005861300000015035,"maxTime":0.08618700000033641,"minTime":0.001205000000027212},{"name":"unescapeSpecialChars","time":0.013244550000035816,"maxTime":0.06358499999987544,"minTime":0.007835999999770138}]}],"1.8.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3569385800000009,"maxTime":9.000459999999975,"minTime":0.09070699999995213},{"name":"performance.testfile.md","time":31.433715060000004,"maxTime":57.438766999999984,"minTime":26.734683000000132}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.177346950000015,"maxTime":7.660953999999947,"minTime":2.346321999999873},{"name":"anchors","time":0.541678950000005,"maxTime":3.749413000000004,"minTime":0.30014600000004066},{"name":"autoLinks","time":0.08653315000001385,"maxTime":0.18322200000011435,"minTime":0.06931100000019796},{"name":"blockQuotes","time":2.048646549999944,"maxTime":3.5523299999999836,"minTime":1.8153400000001056},{"name":"codeBlocks","time":0.26372769999998125,"maxTime":1.1626129999999648,"minTime":0.18472799999972267},{"name":"codeSpans","time":0.27142715000002227,"maxTime":0.7904450000000907,"minTime":0.16303100000004633},{"name":"detab","time":0.09152044999998452,"maxTime":0.11963699999978417,"minTime":0.08648700000003373},{"name":"encodeAmpsAndAngles","time":0.10590985000001182,"maxTime":0.14615600000024642,"minTime":0.09703500000023269},{"name":"encodeBackslashEscapes","time":0.09130940000002283,"maxTime":0.15218199999981152,"minTime":0.07684500000004846},{"name":"encodeCode","time":0.961777750000033,"maxTime":1.551958999999897,"minTime":0.8615639999998166},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.23877579999996215,"maxTime":0.48698400000012043,"minTime":0.17297599999983504},{"name":"githubCodeBlocks","time":0.22202060000001894,"maxTime":0.9139990000003309,"minTime":0.1404299999999239},{"name":"hashBlock","time":0.0631934499999943,"maxTime":0.402002999999695,"minTime":0.035257999999885214},{"name":"hashElement","time":0.0014766499999950612,"maxTime":0.02531300000009651,"minTime":0},{"name":"hashHTMLSpans","time":4.30338740000002,"maxTime":4.888522000000194,"minTime":4.0212320000000545},{"name":"hashPreCodeTags","time":0.16443229999997583,"maxTime":0.5409259999996721,"minTime":0.11029499999995096},{"name":"headers","time":1.1587860999999975,"maxTime":3.7789459999999053,"minTime":0.9682419999999183},{"name":"horizontalRule","time":0.2442149499999914,"maxTime":0.4185769999999138,"minTime":0.1940709999998944},{"name":"images","time":0.32417875000003277,"maxTime":3.0575109999999768,"minTime":0.13319700000010926},{"name":"italicsAndBold","time":0.28938759999996366,"maxTime":0.41917899999998554,"minTime":0.23656099999971048},{"name":"lists","time":2.6713588999999955,"maxTime":3.1388750000000982,"minTime":2.4942840000003343},{"name":"outdent","time":0.15887245000001257,"maxTime":0.2525319999999738,"minTime":0.13862199999994118},{"name":"paragraphs","time":5.593502349999949,"maxTime":6.832538999999997,"minTime":5.159435999999914},{"name":"spanGamut","time":5.069422249999979,"maxTime":9.599546000000373,"minTime":4.127910000000156},{"name":"strikethrough","time":0.003405200000020159,"maxTime":0.062079000000267115,"minTime":0},{"name":"stripLinkDefinitions","time":0.2712614000000258,"maxTime":0.4004960000002029,"minTime":0.22480799999993906},{"name":"tables","time":0.0018532499999764696,"maxTime":0.03103899999996429,"minTime":0},{"name":"unescapeSpecialChars","time":0.008362499999998363,"maxTime":0.03797099999974307,"minTime":0.006628999999975349}]}],"1.7.6":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3132123199999978,"maxTime":6.2674990000000435,"minTime":0.09161100000005717},{"name":"performance.testfile.md","time":30.962222960000013,"maxTime":54.58250999999996,"minTime":26.38147600000002}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.098720800000001,"maxTime":7.07210699999996,"minTime":2.3604820000000473},{"name":"anchors","time":0.573802499999988,"maxTime":4.501581999999871,"minTime":0.2944200000001729},{"name":"autoLinks","time":0.08704519999992044,"maxTime":0.21034299999973882,"minTime":0.06629800000018804},{"name":"blockQuotes","time":2.176025850000019,"maxTime":4.601932000000033,"minTime":1.8228730000000724},{"name":"codeBlocks","time":0.2823659499999621,"maxTime":0.8853699999999662,"minTime":0.19256300000006377},{"name":"codeSpans","time":0.26464649999998074,"maxTime":0.7636240000001635,"minTime":0.16604400000005626},{"name":"detab","time":0.10188689999999952,"maxTime":0.15459400000008827,"minTime":0.09070699999983844},{"name":"encodeAmpsAndAngles","time":0.1072658999999021,"maxTime":0.17538599999988946,"minTime":0.09823999999980515},{"name":"encodeBackslashEscapes","time":0.1198171499999944,"maxTime":0.8715069999998377,"minTime":0.07292699999970864},{"name":"encodeCode","time":0.982675499999982,"maxTime":1.8424599999998463,"minTime":0.8727119999998649},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.3008235499999728,"maxTime":0.3890440000000126,"minTime":0.2772429999999986},{"name":"githubCodeBlocks","time":0.20439130000002023,"maxTime":0.8889859999999317,"minTime":0.1461549999999079},{"name":"hashBlock","time":0.06328369999998813,"maxTime":0.4149600000000646,"minTime":0.034957000000304106},{"name":"hashElement","time":0.0017929999999978462,"maxTime":0.031942999999955646,"minTime":0},{"name":"hashHTMLSpans","time":4.130528449999997,"maxTime":4.411176999999952,"minTime":3.987779000000046},{"name":"hashPreCodeTags","time":0.26229599999996933,"maxTime":2.428888999999799,"minTime":0.10848600000008446},{"name":"headers","time":1.263836200000037,"maxTime":4.308414999999968,"minTime":0.9534750000002532},{"name":"horizontalRule","time":0.2299157000000605,"maxTime":0.33088400000042384,"minTime":0.19376899999997477},{"name":"images","time":0.18361319999996795,"maxTime":0.5638280000002851,"minTime":0.13379999999961},{"name":"italicsAndBold","time":0.31194355000000085,"maxTime":0.8284139999996114,"minTime":0.25132699999994657},{"name":"lists","time":2.641733750000003,"maxTime":3.2741790000000037,"minTime":2.4511889999998857},{"name":"outdent","time":0.1594599499999731,"maxTime":0.2401769999996759,"minTime":0.14404600000034407},{"name":"paragraphs","time":6.723880100000019,"maxTime":12.671812000000045,"minTime":5.367362999999841},{"name":"spanGamut","time":4.990629550000063,"maxTime":9.206274000000121,"minTime":4.172807000000375},{"name":"strikethrough","time":0.0031943499999670167,"maxTime":0.0581609999999273,"minTime":0},{"name":"stripLinkDefinitions","time":0.245947799999999,"maxTime":0.38994800000000396,"minTime":0.21908299999995506},{"name":"tables","time":0.0024710999999797423,"maxTime":0.043695999999727064,"minTime":0},{"name":"unescapeSpecialChars","time":0.010472100000015416,"maxTime":0.05092800000011266,"minTime":0.006930999999894993}]}],"1.7.5":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.5624536399999989,"maxTime":14.434112000000027,"minTime":0.1175269999999955},{"name":"performance.testfile.md","time":30.396062639999997,"maxTime":57.88561900000002,"minTime":26.627980999999863}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.279682000000003,"maxTime":8.3917220000003,"minTime":2.3574690000000373},{"name":"anchors","time":0.6018129999999928,"maxTime":5.340845000000172,"minTime":0.2853789999999208},{"name":"autoLinks","time":0.09221340000001418,"maxTime":0.19316600000001927,"minTime":0.06478999999990265},{"name":"blockQuotes","time":2.0676297999999633,"maxTime":4.429558999999699,"minTime":1.7363850000001548},{"name":"codeBlocks","time":0.2791716500000575,"maxTime":0.9365990000001148,"minTime":0.18141300000024785},{"name":"codeSpans","time":0.22182445000000825,"maxTime":0.5915520000003198,"minTime":0.1576060000002144},{"name":"detab","time":0.12001294999997754,"maxTime":0.14494999999988067,"minTime":0.09130899999991016},{"name":"encodeAmpsAndAngles","time":0.1162462000000005,"maxTime":0.22179400000004534,"minTime":0.09643299999970623},{"name":"encodeBackslashEscapes","time":0.13970635000002857,"maxTime":0.9139979999999923,"minTime":0.07111899999972593},{"name":"encodeCode","time":1.1949925000000348,"maxTime":2.009107000000313,"minTime":0.8612610000000132},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.30746834999999917,"maxTime":0.46829899999966074,"minTime":0.2691060000001926},{"name":"githubCodeBlocks","time":0.19697799999999005,"maxTime":0.8374539999999797,"minTime":0.14404599999988932},{"name":"hashBlock","time":0.059848400000032595,"maxTime":0.4420820000000276,"minTime":0.03616199999987657},{"name":"hashElement","time":0.00222985000002609,"maxTime":0.0406820000002881,"minTime":0},{"name":"hashHTMLSpans","time":4.289491099999987,"maxTime":4.712226999999984,"minTime":4.001941999999872},{"name":"hashPreCodeTags","time":0.28119055000001936,"maxTime":2.4391359999999622,"minTime":0.10758299999997689},{"name":"headers","time":1.2212554000000182,"maxTime":4.602836000000025,"minTime":0.9082720000001245},{"name":"horizontalRule","time":0.20826354999994692,"maxTime":0.3522789999997258,"minTime":0.19316600000001927},{"name":"images","time":0.1816696500000262,"maxTime":0.6337419999999838,"minTime":0.12807400000019697},{"name":"italicsAndBold","time":0.33532845000006545,"maxTime":1.2762219999999616,"minTime":0.23897100000021965},{"name":"lists","time":3.142624149999983,"maxTime":6.410941999999977,"minTime":2.3930279999999584},{"name":"outdent","time":0.3979791999999634,"maxTime":0.5846209999999701,"minTime":0.15851100000008955},{"name":"paragraphs","time":5.925721800000019,"maxTime":11.595988000000034,"minTime":4.961444000000029},{"name":"spanGamut","time":4.442833449999966,"maxTime":6.011651999999685,"minTime":4.023940000000039},{"name":"strikethrough","time":0.00299849999998969,"maxTime":0.054544999999961874,"minTime":0},{"name":"stripLinkDefinitions","time":0.24257244999998875,"maxTime":0.42400099999986196,"minTime":0.21486400000003414},{"name":"tables","time":0.0026519000000007507,"maxTime":0.04851700000017445,"minTime":0},{"name":"unescapeSpecialChars","time":0.00845289999997476,"maxTime":0.04098400000020774,"minTime":0.006327999999939493}]}],"1.7.4":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.9721513400000095,"maxTime":25.185683999999924,"minTime":0.16001700000003893},{"name":"performance.testfile.md","time":30.397026539999985,"maxTime":61.91279899999995,"minTime":26.54959800000006}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":3.9990743000000064,"maxTime":6.602594000000408,"minTime":2.3143739999995887},{"name":"anchors","time":0.5273032499999545,"maxTime":3.822632999999769,"minTime":0.2850779999998849},{"name":"autoLinks","time":0.08963684999998804,"maxTime":0.18834400000014284,"minTime":0.06328400000029433},{"name":"blockQuotes","time":2.05724574999997,"maxTime":4.121875000000273,"minTime":1.7803800000001502},{"name":"codeBlocks","time":0.24737865000001874,"maxTime":1.0845610000001216,"minTime":0.18623500000012427},{"name":"codeSpans","time":0.26315439999996215,"maxTime":1.0170579999999063,"minTime":0.16182500000013533},{"name":"detab","time":0.1229059499999721,"maxTime":0.1579079999996793,"minTime":0.0970340000003489},{"name":"encodeAmpsAndAngles","time":0.11849099999999453,"maxTime":0.17116699999996854,"minTime":0.09613099999978658},{"name":"encodeBackslashEscapes","time":0.07934549999995397,"maxTime":0.14645599999994374,"minTime":0.07111799999984214},{"name":"encodeCode","time":0.9450961000000007,"maxTime":1.4528110000001107,"minTime":0.8663830000000416},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2850024500000245,"maxTime":0.4384650000001784,"minTime":0.245600000000195},{"name":"githubCodeBlocks","time":0.22539534999998523,"maxTime":0.9688430000001063,"minTime":0.1416349999999511},{"name":"hashBlock","time":0.06790930000001935,"maxTime":0.5767860000000837,"minTime":0.03555899999992107},{"name":"hashElement","time":0.0022601500000064335,"maxTime":0.04068300000017189,"minTime":0},{"name":"hashHTMLSpans","time":4.125777100000005,"maxTime":4.527794000000085,"minTime":3.95040599999993},{"name":"hashPreCodeTags","time":0.14892740000002505,"maxTime":0.5373079999999391,"minTime":0.10969100000011167},{"name":"headers","time":1.1714858000000277,"maxTime":3.876875999999811,"minTime":0.8841630000001715},{"name":"horizontalRule","time":0.3806509500000175,"maxTime":3.456793000000289,"minTime":0.1967819999999847},{"name":"images","time":0.19467249999997877,"maxTime":0.6180699999999888,"minTime":0.132593999999699},{"name":"italicsAndBold","time":0.2980658500000118,"maxTime":0.5623199999999997,"minTime":0.24499800000012328},{"name":"lists","time":3.7902082000000066,"maxTime":6.13881500000025,"minTime":2.612108000000262},{"name":"outdent","time":0.16693305000001146,"maxTime":0.2763379999996687,"minTime":0.13892200000009325},{"name":"paragraphs","time":5.349426699999981,"maxTime":6.076133999999911,"minTime":4.8972499999999854},{"name":"spanGamut","time":4.370021999999949,"maxTime":6.111091000000215,"minTime":3.9455849999999373},{"name":"strikethrough","time":0.002681949999941935,"maxTime":0.048215999999683845,"minTime":0},{"name":"stripLinkDefinitions","time":0.2550632000000178,"maxTime":0.400796000000355,"minTime":0.21817700000019613},{"name":"tables","time":0.001913599999966209,"maxTime":0.03284799999983079,"minTime":0},{"name":"unescapeSpecialChars","time":0.008859800000004725,"maxTime":0.04008000000021639,"minTime":0.006630000000313885}]}],"1.7.3":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.2769780200000014,"maxTime":5.742551000000049,"minTime":0.08799399999998059},{"name":"performance.testfile.md","time":30.73344694000001,"maxTime":54.768493000000035,"minTime":26.97154599999999}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.315576899999996,"maxTime":8.270586999999978,"minTime":2.3387870000001385},{"name":"anchors","time":0.5248635000000377,"maxTime":3.812093999999888,"minTime":0.28809199999977864},{"name":"autoLinks","time":0.0845591499999955,"maxTime":0.21998700000040117,"minTime":0.06268099999988408},{"name":"blockQuotes","time":2.032795400000032,"maxTime":3.6222429999997985,"minTime":1.7451259999998001},{"name":"codeBlocks","time":0.25076970000002347,"maxTime":1.059552000000167,"minTime":0.17809899999974732},{"name":"codeSpans","time":0.24638479999996435,"maxTime":0.7494609999998829,"minTime":0.1570040000001427},{"name":"detab","time":0.1421171499999673,"maxTime":0.7524739999998928,"minTime":0.08739100000002509},{"name":"encodeAmpsAndAngles","time":0.10028979999999592,"maxTime":0.12927999999965323,"minTime":0.09492600000021412},{"name":"encodeBackslashEscapes","time":0.07875814999997602,"maxTime":0.1247600000001512,"minTime":0.06991299999981493},{"name":"encodeCode","time":0.9767702500000042,"maxTime":1.773754000000281,"minTime":0.8516189999995731},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.27073390000000475,"maxTime":0.4414790000000721,"minTime":0.24409500000001572},{"name":"githubCodeBlocks","time":0.23499365000002398,"maxTime":0.9848159999996824,"minTime":0.1392240000000129},{"name":"hashBlock","time":0.0681052000000136,"maxTime":0.5496650000000045,"minTime":0.03616199999987657},{"name":"hashElement","time":0.001687549999996918,"maxTime":0.029532000000017433,"minTime":0},{"name":"hashHTMLSpans","time":4.197401899999977,"maxTime":4.563965999999709,"minTime":4.005560999999943},{"name":"hashPreCodeTags","time":0.13869685000001936,"maxTime":0.5433360000001812,"minTime":0.10577400000011039},{"name":"headers","time":1.148419750000039,"maxTime":4.214097000000038,"minTime":0.8796440000000985},{"name":"horizontalRule","time":0.21377854999998364,"maxTime":0.27302400000007765,"minTime":0.1985909999998512},{"name":"images","time":0.3095482500000116,"maxTime":3.095480999999836,"minTime":0.11993800000027477},{"name":"italicsAndBold","time":0.2785843000000341,"maxTime":0.3778940000001967,"minTime":0.23505399999976362},{"name":"lists","time":3.8429223499999354,"maxTime":8.277819999999792,"minTime":2.629892999999811},{"name":"outdent","time":0.19257850000001325,"maxTime":0.3863329999999223,"minTime":0.14404500000000553},{"name":"paragraphs","time":5.540976899999987,"maxTime":8.153060000000096,"minTime":4.83608600000025},{"name":"spanGamut","time":4.637932300000012,"maxTime":5.775095999999849,"minTime":4.142072999999982},{"name":"strikethrough","time":0.0028779499999927794,"maxTime":0.051530999999613414,"minTime":0},{"name":"stripLinkDefinitions","time":0.16675279999994927,"maxTime":0.27483299999994415,"minTime":0.1416349999999511},{"name":"tables","time":0.0021245000000135405,"maxTime":0.03646299999991243,"minTime":0},{"name":"unescapeSpecialChars","time":0.009130949999985205,"maxTime":0.031942999999955646,"minTime":0.00783499999988635}]}],"1.7.2":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.2924792600000001,"maxTime":5.779913000000079,"minTime":0.0870909999999867},{"name":"performance.testfile.md","time":30.395544379999997,"maxTime":53.85987,"minTime":26.054209000000128}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.303097000000003,"maxTime":7.7980609999999615,"minTime":2.377357999999731},{"name":"anchors","time":0.3474425999999994,"maxTime":0.6473019999998542,"minTime":0.28688599999986764},{"name":"autoLinks","time":0.08811514999999873,"maxTime":0.16544199999998455,"minTime":0.06328399999983958},{"name":"blockQuotes","time":2.1012153500000297,"maxTime":5.12055700000019,"minTime":1.7381930000001375},{"name":"codeBlocks","time":0.23850445000000492,"maxTime":0.8784390000000712,"minTime":0.18412599999965096},{"name":"codeSpans","time":0.2522458500000312,"maxTime":0.6283170000001519,"minTime":0.16031900000007226},{"name":"detab","time":0.09415714999997818,"maxTime":0.12867700000015247,"minTime":0.08769299999994473},{"name":"encodeAmpsAndAngles","time":0.1305904000000055,"maxTime":0.7331880000001547,"minTime":0.09251499999982116},{"name":"encodeBackslashEscapes","time":0.07973749999998744,"maxTime":0.1157189999998991,"minTime":0.07021500000018932},{"name":"encodeCode","time":0.9388443000000052,"maxTime":1.4799349999998412,"minTime":0.8573440000000119},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.28453565000002073,"maxTime":0.4731209999999919,"minTime":0.24349200000006022},{"name":"githubCodeBlocks","time":0.2144414500000039,"maxTime":1.046893000000182,"minTime":0.13952599999993254},{"name":"hashBlock","time":0.06795475000005809,"maxTime":0.5532809999999699,"minTime":0.03616200000033132},{"name":"hashElement","time":0.0016724999999723877,"maxTime":0.029833999999937078,"minTime":0},{"name":"hashHTMLSpans","time":4.323498449999988,"maxTime":6.161724999999933,"minTime":4.0037499999998545},{"name":"hashPreCodeTags","time":0.1474811499999987,"maxTime":0.5584039999998822,"minTime":0.1087880000000041},{"name":"headers","time":1.1759319999999889,"maxTime":4.491336000000047,"minTime":0.8841640000000552},{"name":"horizontalRule","time":0.21614389999997458,"maxTime":0.2636819999997897,"minTime":0.19316600000001927},{"name":"images","time":0.15570804999995289,"maxTime":0.5587049999999181,"minTime":0.11782799999991767},{"name":"italicsAndBold","time":0.3219485000000077,"maxTime":1.012539999999717,"minTime":0.2365599999998267},{"name":"lists","time":2.753399100000024,"maxTime":5.612964000000375,"minTime":2.3276349999996455},{"name":"outdent","time":0.16286519999998744,"maxTime":0.2323420000002443,"minTime":0.1398269999999684},{"name":"paragraphs","time":5.108954950000021,"maxTime":6.168355000000247,"minTime":4.741155999999592},{"name":"spanGamut","time":4.422869150000042,"maxTime":6.14906800000017,"minTime":4.000737000000299},{"name":"strikethrough","time":0.0028779999999869687,"maxTime":0.051230000000032305,"minTime":0},{"name":"stripLinkDefinitions","time":0.1603637499999877,"maxTime":0.2257119999999304,"minTime":0.14193599999998696},{"name":"tables","time":0.002470999999968626,"maxTime":0.04339399999980742,"minTime":0},{"name":"unescapeSpecialChars","time":0.011074649999977737,"maxTime":0.04640800000015588,"minTime":0.006628999999975349}]}],"1.7.1":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":1.0738219599999979,"maxTime":20.566299000000072,"minTime":0.3242529999999988},{"name":"performance.testfile.md","time":30.4629232,"maxTime":82.115725,"minTime":26.02165500000001}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.232850950000011,"maxTime":9.06222600000001,"minTime":2.35927700000002},{"name":"anchors","time":0.35050129999999624,"maxTime":0.7627189999998336,"minTime":0.28568100000029517},{"name":"autoLinks","time":0.08923019999999723,"maxTime":0.19015300000000934,"minTime":0.06509199999982229},{"name":"blockQuotes","time":2.073701349999965,"maxTime":4.988563999999769,"minTime":1.7291510000000017},{"name":"codeBlocks","time":0.2560277500000211,"maxTime":0.9369000000001506,"minTime":0.1790019999998549},{"name":"codeSpans","time":0.24160820000001876,"maxTime":0.8386599999998907,"minTime":0.1576060000002144},{"name":"detab","time":0.09915939999998499,"maxTime":0.16815399999995861,"minTime":0.08618599999999788},{"name":"encodeAmpsAndAngles","time":0.13123839999998382,"maxTime":0.646096999999827,"minTime":0.09311699999989287},{"name":"encodeBackslashEscapes","time":0.07607604999996057,"maxTime":0.1404299999999239,"minTime":0.07021399999985078},{"name":"encodeCode","time":0.9938553500000807,"maxTime":1.7056470000002264,"minTime":0.8648769999999786},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.26711740000000644,"maxTime":0.37518199999976787,"minTime":0.24951800000008006},{"name":"githubCodeBlocks","time":0.19164420000001883,"maxTime":0.9664330000000518,"minTime":0.14012899999988804},{"name":"hashBlock","time":0.05914020000000164,"maxTime":0.39748199999985445,"minTime":0.03646299999991243},{"name":"hashElement","time":0.0017327499999964858,"maxTime":0.030737999999928434,"minTime":0},{"name":"hashHTMLSpans","time":4.116996499999937,"maxTime":5.5849379999999655,"minTime":3.89044100000001},{"name":"hashPreCodeTags","time":0.1423884499999531,"maxTime":0.5294739999999365,"minTime":0.1081850000000486},{"name":"headers","time":1.1452692999999954,"maxTime":4.103494999999839,"minTime":0.8639729999999872},{"name":"horizontalRule","time":0.21682209999996757,"maxTime":0.36583999999993466,"minTime":0.19407000000001062},{"name":"images","time":0.15055509999997413,"maxTime":0.5526780000000144,"minTime":0.11662299999989045},{"name":"italicsAndBold","time":0.3119285999999647,"maxTime":1.2412650000001122,"minTime":0.23625899999979083},{"name":"lists","time":4.022899600000005,"maxTime":7.077227000000221,"minTime":2.4975970000000416},{"name":"outdent","time":0.17451229999999213,"maxTime":0.26066899999977977,"minTime":0.14826499999981024},{"name":"paragraphs","time":6.5566433999999845,"maxTime":8.645457999999962,"minTime":4.997002000000066},{"name":"spanGamut","time":5.072655700000018,"maxTime":6.34705299999996,"minTime":4.136643999999706},{"name":"strikethrough","time":0.006192800000076204,"maxTime":0.11029400000006717,"minTime":0},{"name":"stripLinkDefinitions","time":0.16428144999997585,"maxTime":0.27694100000007893,"minTime":0.1416349999999511},{"name":"tables","time":0.004354600000010578,"maxTime":0.08015999999997803,"minTime":0},{"name":"unescapeSpecialChars","time":0.009130899999991015,"maxTime":0.04580600000008417,"minTime":0.006930999999894993}]}],"1.7.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.39255787999999486,"maxTime":9.953321000000074,"minTime":0.09673299999997198},{"name":"performance.testfile.md","time":29.416470079999975,"maxTime":54.25341800000001,"minTime":25.948727999999846}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":4.0619999999999665,"maxTime":7.184810000000198,"minTime":2.325826999999663},{"name":"anchors","time":0.4883242500000051,"maxTime":4.085716999999931,"minTime":0.28085900000041875},{"name":"autoLinks","time":0.08583980000000793,"maxTime":0.19979499999999462,"minTime":0.06298299999980372},{"name":"blockQuotes","time":2.071019450000017,"maxTime":4.554016000000047,"minTime":1.7333710000002611},{"name":"codeBlocks","time":0.2531195000000025,"maxTime":0.8639729999999872,"minTime":0.17809799999986353},{"name":"codeSpans","time":0.2609549000000243,"maxTime":0.5924559999998564,"minTime":0.15971599999966202},{"name":"detab","time":0.09453374999998232,"maxTime":0.1298820000001797,"minTime":0.08859699999993609},{"name":"encodeAmpsAndAngles","time":0.10304694999997537,"maxTime":0.19196099999999205,"minTime":0.09462400000029447},{"name":"encodeBackslashEscapes","time":0.1064521499999728,"maxTime":0.5894419999999627,"minTime":0.07051600000022518},{"name":"encodeCode","time":0.9265486000000009,"maxTime":1.1821999999997388,"minTime":0.8347420000000056},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2759772000000112,"maxTime":0.6171669999998812,"minTime":0.24530000000004293},{"name":"githubCodeBlocks","time":0.1951549499999828,"maxTime":0.9799929999999222,"minTime":0.1386210000000574},{"name":"hashBlock","time":0.062304449999965074,"maxTime":0.4833670000002712,"minTime":0.03495699999984936},{"name":"hashElement","time":0.0014464500000030966,"maxTime":0.024711000000024796,"minTime":0},{"name":"hashHTMLSpans","time":4.1203715999999755,"maxTime":4.609765000000152,"minTime":3.8587989999996353},{"name":"hashPreCodeTags","time":0.14734550000000582,"maxTime":0.5351989999999205,"minTime":0.10487000000011903},{"name":"headers","time":1.3076671999999916,"maxTime":4.252966000000015,"minTime":0.8564390000001367},{"name":"horizontalRule","time":0.2203779999999597,"maxTime":0.3742779999997765,"minTime":0.19407000000001062},{"name":"images","time":0.15025354999997945,"maxTime":0.506872000000385,"minTime":0.1163219999998546},{"name":"italicsAndBold","time":0.30579589999997553,"maxTime":0.872110000000248,"minTime":0.24138200000015786},{"name":"lists","time":3.447394599999984,"maxTime":4.893336999999974,"minTime":2.407492000000275},{"name":"outdent","time":0.26698190000001887,"maxTime":0.8684939999998278,"minTime":0.1808109999997214},{"name":"paragraphs","time":5.866655149999997,"maxTime":8.331147999999757,"minTime":4.9695779999997285},{"name":"spanGamut","time":5.038527899999986,"maxTime":7.123635999999806,"minTime":4.11615299999994},{"name":"strikethrough","time":0.003992900000002919,"maxTime":0.07322800000019924,"minTime":0},{"name":"stripLinkDefinitions","time":0.15298084999997172,"maxTime":0.24288900000010472,"minTime":0.13952599999993254},{"name":"tables","time":0.0024410000000443686,"maxTime":0.043695999999727064,"minTime":0},{"name":"unescapeSpecialChars","time":0.008663700000033714,"maxTime":0.0406820000002881,"minTime":0.006628999999975349}]}],"1.6.4":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.37575447999999595,"maxTime":6.3811059999999316,"minTime":0.182617999999934},{"name":"performance.testfile.md","time":33.83478732000001,"maxTime":61.04858100000001,"minTime":30.186325000000124}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.5643760500000328,"maxTime":8.346818999999869,"minTime":1.8710879999998724},{"name":"anchors","time":0.4985702000000174,"maxTime":4.221624999999676,"minTime":0.27031199999964883},{"name":"autoLinks","time":0.08000864999996793,"maxTime":0.17357799999990675,"minTime":0.06087299999990137},{"name":"blockQuotes","time":3.3429765499999804,"maxTime":7.305651000000125,"minTime":2.8504790000001776},{"name":"codeBlocks","time":0.22134235000003172,"maxTime":0.8220859999996719,"minTime":0.17176999999992404},{"name":"codeSpans","time":0.22901160000001256,"maxTime":0.7443360000002031,"minTime":0.15579799999977695},{"name":"detab","time":0.0973213499999929,"maxTime":0.15429100000028484,"minTime":0.08618699999988166},{"name":"encodeAmpsAndAngles","time":0.11678870000000643,"maxTime":0.19979600000033315,"minTime":0.09432200000037483},{"name":"encodeBackslashEscapes","time":0.08623155000002498,"maxTime":0.2296289999999317,"minTime":0.06810499999983222},{"name":"encodeCode","time":0.8853238499999861,"maxTime":1.1647219999999834,"minTime":0.8163599999998041},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2983526000000438,"maxTime":0.4954210000000785,"minTime":0.2401769999996759},{"name":"githubCodeBlocks","time":0.18343240000001515,"maxTime":0.7847170000000006,"minTime":0.1331980000004478},{"name":"hashBlock","time":0.0443587499999694,"maxTime":0.09763799999973344,"minTime":0.035257999999885214},{"name":"hashElement","time":0.00200395000001663,"maxTime":0.03345000000035725,"minTime":0},{"name":"hashHTMLSpans","time":4.199521549999963,"maxTime":4.551605000000109,"minTime":3.9874759999997877},{"name":"hashPreCodeTags","time":0.1295205500000293,"maxTime":0.3134050000003299,"minTime":0.10637700000006589},{"name":"headers","time":1.2236204000000044,"maxTime":4.009776000000329,"minTime":0.944735000000037},{"name":"horizontalRule","time":0.41190154999999323,"maxTime":4.175217999999859,"minTime":0.19648000000006505},{"name":"images","time":0.08806979999997111,"maxTime":0.20250800000030722,"minTime":0.0732279999997445},{"name":"italicsAndBold","time":0.2764291999999841,"maxTime":0.4137550000000374,"minTime":0.23324500000035187},{"name":"lists","time":5.0047764500000085,"maxTime":6.109288000000106,"minTime":4.663406000000123},{"name":"outdent","time":0.1521370000000161,"maxTime":0.3366089999999531,"minTime":0.13922500000035143},{"name":"paragraphs","time":5.336081549999994,"maxTime":7.117005000000063,"minTime":4.843312999999853},{"name":"spanGamut","time":4.449883849999901,"maxTime":6.152983999999833,"minTime":3.8569910000001073},{"name":"strikethrough","time":0.002606700000001183,"maxTime":0.04881900000009409,"minTime":0},{"name":"stripLinkDefinitions","time":0.18040370000001077,"maxTime":0.3161169999998492,"minTime":0.14705999999978303},{"name":"tables","time":0.0031190500000320754,"maxTime":0.05544899999995323,"minTime":0},{"name":"unescapeSpecialChars","time":0.009281650000002629,"maxTime":0.047313000000031025,"minTime":0.006628999999975349}]}],"1.6.3":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3880986600000119,"maxTime":6.064399999999978,"minTime":0.17418099999997594},{"name":"performance.testfile.md","time":26.898552680000012,"maxTime":49.06275100000005,"minTime":24.84523399999989}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.6158222500000194,"maxTime":8.18079200000011,"minTime":1.8985149999998612},{"name":"anchors","time":0.5154769000000442,"maxTime":4.690839000000324,"minTime":0.2639840000001641},{"name":"autoLinks","time":0.09307249999999385,"maxTime":0.18834400000014284,"minTime":0.07262600000012753},{"name":"blockQuotes","time":4.5183903999999755,"maxTime":8.952854000000116,"minTime":3.035816000000068},{"name":"codeBlocks","time":0.22262349999998604,"maxTime":0.347758999999769,"minTime":0.18834500000002663},{"name":"codeSpans","time":0.31763950000004115,"maxTime":1.0948100000000522,"minTime":0.1771950000002107},{"name":"detab","time":0.0919273999999632,"maxTime":0.13651200000003882,"minTime":0.08739199999990888},{"name":"encodeAmpsAndAngles","time":0.0438916999999492,"maxTime":0.08919999999989159,"minTime":0.038271000000349886},{"name":"encodeBackslashEscapes","time":0.10785369999998692,"maxTime":0.2651890000001913,"minTime":0.07835100000011153},{"name":"encodeCode","time":1.5346329500000138,"maxTime":9.895783999999821,"minTime":0.8645779999997103},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.2937122499999759,"maxTime":0.5234480000003714,"minTime":0.25343700000030367},{"name":"githubCodeBlocks","time":0.20775164999997742,"maxTime":0.7901440000000548,"minTime":0.1416349999999511},{"name":"hashBlock","time":0.042234400000006646,"maxTime":0.12325299999974959,"minTime":0.035860999999840715},{"name":"hashElement","time":0.0016724999999951252,"maxTime":0.028929000000061933,"minTime":0},{"name":"hashHTMLSpans","time":0.4103353000000197,"maxTime":1.5980680000002394,"minTime":0.2404790000000503},{"name":"hashPreCodeTags","time":0.13196184999997057,"maxTime":0.3950719999998,"minTime":0.11029400000006717},{"name":"headers","time":1.0150126000000683,"maxTime":1.501936999999998,"minTime":0.8055130000002464},{"name":"horizontalRule","time":0.22018260000002102,"maxTime":0.35710100000005696,"minTime":0.1946739999998499},{"name":"images","time":0.1582398000000012,"maxTime":0.978186999999707,"minTime":0.07684500000004846},{"name":"italicsAndBold","time":0.28757974999998626,"maxTime":0.6394679999998516,"minTime":0.24078000000008615},{"name":"lists","time":5.151319100000023,"maxTime":6.331397000000379,"minTime":4.629061999999976},{"name":"outdent","time":0.18019314999994548,"maxTime":0.36342999999988024,"minTime":0.14253999999982625},{"name":"paragraphs","time":4.547636500000022,"maxTime":6.308794999999918,"minTime":4.002250999999887},{"name":"spanGamut","time":1.5190982500000245,"maxTime":1.863557999999557,"minTime":1.3720530000000508},{"name":"strikethrough","time":0.003450399999996989,"maxTime":0.06539299999985815,"minTime":0},{"name":"stripLinkDefinitions","time":0.1786111499999606,"maxTime":0.3128030000002582,"minTime":0.1443480000002637},{"name":"tables","time":0.0035106999999925392,"maxTime":0.06268099999988408,"minTime":0.00030099999958110857},{"name":"unescapeSpecialChars","time":0.01146649999998317,"maxTime":0.04881900000009409,"minTime":0.006628999999975349}]}],"1.6.2":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.6130621400000001,"maxTime":5.893518999999998,"minTime":0.16875699999999938},{"name":"performance.testfile.md","time":25.970254839999992,"maxTime":62.88168,"minTime":23.709682999999927}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.6685977000000323,"maxTime":8.478507000000036,"minTime":1.8846490000000813},{"name":"anchors","time":0.5002727000000278,"maxTime":3.841318999999885,"minTime":0.2676000000001295},{"name":"autoLinks","time":0.09846654999997781,"maxTime":0.21064500000011321,"minTime":0.07202299999994466},{"name":"blockQuotes","time":3.221817550000014,"maxTime":5.825714999999946,"minTime":2.791112000000112},{"name":"codeBlocks","time":0.17663659999998343,"maxTime":0.3712639999998828,"minTime":0.1570040000001427},{"name":"codeSpans","time":0.2181328999999778,"maxTime":0.483066000000008,"minTime":0.15097700000001169},{"name":"detab","time":0.13492999999998573,"maxTime":0.6545340000000124,"minTime":0.08498099999997066},{"name":"encodeAmpsAndAngles","time":0.04158639999994875,"maxTime":0.11752699999988181,"minTime":0.03616199999987657},{"name":"encodeBackslashEscapes","time":0.0800689000000034,"maxTime":0.13319799999999304,"minTime":0.06780399999979636},{"name":"encodeCode","time":0.5599700499999927,"maxTime":0.9821019999999407,"minTime":0.48396900000011556},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.35280645000001415,"maxTime":0.5683480000000145,"minTime":0.2914060000000518},{"name":"githubCodeBlocks","time":0.17996669999999995,"maxTime":0.7729650000001129,"minTime":0.1274710000000141},{"name":"hashBlock","time":0.057723849999990764,"maxTime":0.31159699999989243,"minTime":0.037368000000014945},{"name":"hashElement","time":0.0025463500000000748,"maxTime":0.04610600000000886,"minTime":0},{"name":"hashHTMLSpans","time":0.47458235000001425,"maxTime":2.325223000000051,"minTime":0.2344510000000355},{"name":"hashPreCodeTags","time":0.12186629999998785,"maxTime":0.3073779999999715,"minTime":0.10697999999979402},{"name":"headers","time":0.8577350000000024,"maxTime":0.9540770000000975,"minTime":0.7801970000000438},{"name":"horizontalRule","time":0.22663095000001476,"maxTime":0.41797300000007453,"minTime":0.1967819999999847},{"name":"images","time":0.17053435000000264,"maxTime":1.4528119999999944,"minTime":0.07714599999985694},{"name":"italicsAndBold","time":0.10093754999998054,"maxTime":0.20220699999981662,"minTime":0.0882960000001276},{"name":"lists","time":4.9306124000000064,"maxTime":5.460477999999966,"minTime":4.55642499999999},{"name":"outdent","time":0.16260889999998654,"maxTime":0.31461000000012973,"minTime":0.1416349999999511},{"name":"paragraphs","time":3.7896679000000177,"maxTime":5.563840999999911,"minTime":3.278396000000157},{"name":"spanGamut","time":1.4417527499999891,"maxTime":2.0124210000001312,"minTime":1.2032939999999144},{"name":"strikethrough","time":0.004233999999985372,"maxTime":0.08196800000018811,"minTime":0},{"name":"stripBlankLines","time":0.08623144999999113,"maxTime":0.1304850000001352,"minTime":0.0804600000001301},{"name":"stripLinkDefinitions","time":0.15983660000002828,"maxTime":0.21727400000008856,"minTime":0.1446480000001884},{"name":"tables","time":0.004143600000008974,"maxTime":0.07593999999994594,"minTime":0},{"name":"unescapeSpecialChars","time":0.00991439999999102,"maxTime":0.0581609999999273,"minTime":0.006628999999975349}]}],"1.6.1":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3172682400000001,"maxTime":5.4981469999999995,"minTime":0.16062000000000154},{"name":"readme.md","time":26.0144148,"maxTime":46.79858399999999,"minTime":24.245484999999917}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.6414157500000215,"maxTime":7.791727999999921,"minTime":1.9364810000001853},{"name":"anchors","time":0.47462755000000245,"maxTime":4.062812000000122,"minTime":0.25885999999991327},{"name":"autoLinks","time":0.08906409999998459,"maxTime":0.19708299999979317,"minTime":0.06870800000001509},{"name":"blockQuotes","time":3.213485000000014,"maxTime":6.05383699999993,"minTime":2.880010000000084},{"name":"codeBlocks","time":0.16200620000001892,"maxTime":0.2691060000001926,"minTime":0.15308599999980288},{"name":"codeSpans","time":0.169494799999984,"maxTime":0.39868699999988166,"minTime":0.1410319999999956},{"name":"detab","time":0.12471390000000611,"maxTime":0.6647800000000643,"minTime":0.08558400000015354},{"name":"encodeAmpsAndAngles","time":0.04181244999999763,"maxTime":0.08920000000011896,"minTime":0.03796999999985928},{"name":"encodeBackslashEscapes","time":0.07586505000000443,"maxTime":0.13289599999984603,"minTime":0.06810500000005959},{"name":"encodeCode","time":0.5765897500000051,"maxTime":0.970348999999942,"minTime":0.4791480000001229},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.24603789999998754,"maxTime":0.35047099999997045,"minTime":0.22119199999997363},{"name":"githubCodeBlocks","time":0.1767573999999968,"maxTime":0.815454999999929,"minTime":0.1250600000000759},{"name":"hashBlock","time":0.06537804999999253,"maxTime":0.42972599999984595,"minTime":0.0376690000000508},{"name":"hashElement","time":0.0020039500000052614,"maxTime":0.034051999999974214,"minTime":0},{"name":"hashHTMLSpans","time":0.42437735000000887,"maxTime":2.3210050000000138,"minTime":0.24078000000008615},{"name":"hashPreCodeTags","time":0.12225794999998243,"maxTime":0.23836899999992056,"minTime":0.10396600000012768},{"name":"headers","time":0.8037480999999957,"maxTime":0.9462419999999838,"minTime":0.7256529999999657},{"name":"horizontalRule","time":0.2186149999999884,"maxTime":0.27362700000003315,"minTime":0.19437100000004648},{"name":"images","time":0.12388539999997192,"maxTime":0.9019430000000739,"minTime":0.07081799999991745},{"name":"italicsAndBold","time":0.10089220000002115,"maxTime":0.15037400000005618,"minTime":0.08950099999992744},{"name":"lists","time":4.938929699999983,"maxTime":5.421000999999933,"minTime":4.623625999999831},{"name":"outdent","time":0.1648239000000217,"maxTime":0.3372110000000248,"minTime":0.1404290000000401},{"name":"paragraphs","time":3.4947812,"maxTime":4.554917999999816,"minTime":3.1714170000000195},{"name":"spanGamut","time":1.318997649999983,"maxTime":1.9916279999999915,"minTime":1.1469409999999698},{"name":"strikethrough","time":0.007458499999995638,"maxTime":0.14314200000012534,"minTime":0},{"name":"stripBlankLines","time":0.09447364999999763,"maxTime":0.1545929999999771,"minTime":0.0822689999999966},{"name":"stripLinkDefinitions","time":0.1762751000000094,"maxTime":0.3112949999999728,"minTime":0.1464570000000549},{"name":"tables","time":0.0023505499999828317,"maxTime":0.03947699999980614,"minTime":0},{"name":"unescapeSpecialChars","time":0.008332400000006146,"maxTime":0.03375200000004952,"minTime":0.0066299999998591375}]}],"1.6.0":[{"suiteName":"Basic","cycles":50,"tests":[{"name":"Simple \"Hello World\"","time":0.3075345600000001,"maxTime":5.369168,"minTime":0.1570040000000006},{"name":"readme.md","time":25.81825956,"maxTime":47.795452,"minTime":23.775378000000046}]},{"suiteName":"subParsers","cycles":20,"tests":[{"name":"hashHTMLBlocks","time":2.652987649999966,"maxTime":8.557761999999911,"minTime":1.8804290000000492},{"name":"anchors","time":0.5166509500000303,"maxTime":4.142066999999997,"minTime":0.27121600000009494},{"name":"autoLinks","time":0.0885518999999931,"maxTime":0.19437100000004648,"minTime":0.0705159999999978},{"name":"blockGamut","time":17.371581599999978,"maxTime":22.94093699999985,"minTime":14.081522999999834},{"name":"blockQuotes","time":3.011308699999995,"maxTime":4.110426000000189,"minTime":2.7742359999999735},{"name":"codeBlocks","time":0.24291900000000624,"maxTime":0.8344409999999698,"minTime":0.19346700000005512},{"name":"codeSpans","time":0.2271433000000002,"maxTime":0.4583549999999832,"minTime":0.19135800000003655},{"name":"detab","time":0.09469964999999547,"maxTime":0.13289599999984603,"minTime":0.08950099999992744},{"name":"encodeAmpsAndAngles","time":0.040486450000014426,"maxTime":0.07262600000012753,"minTime":0.03766799999993964},{"name":"encodeBackslashEscapes","time":0.09959649999997282,"maxTime":0.5095850000000155,"minTime":0.06840699999997923},{"name":"encodeCode","time":0.5320952499999863,"maxTime":0.7057630000001609,"minTime":0.4794489999999314},{"name":"escapeSpecialCharsWithinTagAttributes","time":0.38607564999999794,"maxTime":0.7018459999999322,"minTime":0.326663999999937},{"name":"githubCodeBlocks","time":0.21441115000002356,"maxTime":0.7780880000000252,"minTime":0.15579800000000432},{"name":"hashBlock","time":0.056638900000007195,"maxTime":0.27995499999997264,"minTime":0.035257999999885214},{"name":"hashElement","time":0.001958799999999883,"maxTime":0.033148999999866646,"minTime":0},{"name":"hashHTMLSpans","time":0.38414695000003574,"maxTime":1.9973540000000867,"minTime":0.2356569999999465},{"name":"hashPreCodeTags","time":0.1327451500000393,"maxTime":0.20009700000014163,"minTime":0.1157189999998991},{"name":"headers","time":0.9440720999999825,"maxTime":2.4683650000001762,"minTime":0.7823069999999461},{"name":"images","time":0.12035954999996648,"maxTime":0.4857769999998709,"minTime":0.08588499999996202},{"name":"italicsAndBold","time":0.11076150000000098,"maxTime":0.4447930000001179,"minTime":0.08799499999986438},{"name":"lists","time":5.782546349999995,"maxTime":13.248890999999958,"minTime":4.463608999999906},{"name":"outdent","time":0.3057505000000219,"maxTime":0.9561860000001161,"minTime":0.22541000000001077},{"name":"paragraphs","time":6.582542549999971,"maxTime":8.810596000000032,"minTime":4.498867000000246},{"name":"spanGamut","time":2.43690389999997,"maxTime":3.067450000000008,"minTime":1.6474849999999606},{"name":"strikethrough","time":0.005228549999992537,"maxTime":0.10035000000016225,"minTime":0},{"name":"stripBlankLines","time":0.12142940000005638,"maxTime":0.17508399999996982,"minTime":0.09191199999986566},{"name":"stripLinkDefinitions","time":0.24673084999997172,"maxTime":0.572566000000279,"minTime":0.17146900000034293},{"name":"tables","time":0.005650249999962398,"maxTime":0.0985419999997248,"minTime":0.00030099999958110857},{"name":"unescapeSpecialChars","time":0.016694800000050237,"maxTime":0.06569400000034875,"minTime":0.011450999999851774}]}]} \ No newline at end of file diff --git a/performance.log.md b/performance.log.md index 34732fe..76b1b76 100644 --- a/performance.log.md +++ b/performance.log.md @@ -1,6 +1,47 @@ # Performance Tests for showdown +## [version 2.0.0-alpha1](https://github.com/showdownjs/showdown/tree/2.0.0-alpha1) + +### Test Suite: Basic (50 cycles) +| test | avgTime | max | min | +|:-----|--------:|----:|----:| +|Simple "Hello World"|0.330|9.462|0.086| +|performance.testfile.md|32.210|56.635|27.395| + +### Test Suite: subParsers (20 cycles) +| test | avgTime | max | min | +|:-----|--------:|----:|----:| +|hashHTMLBlocks|4.055|7.506|2.413| +|anchors|0.342|0.600|0.286| +|autoLinks|0.091|0.193|0.070| +|blockQuotes|2.896|5.991|1.987| +|codeBlocks|0.303|1.578|0.190| +|codeSpans|0.285|0.533|0.237| +|detab|0.136|0.873|0.086| +|encodeAmpsAndAngles|0.104|0.166|0.097| +|encodeBackslashEscapes|0.081|0.141|0.068| +|encodeCode|0.942|1.342|0.850| +|escapeSpecialCharsWithinTagAttributes|0.212|0.436|0.159| +|githubCodeBlocks|0.176|0.305|0.143| +|hashBlock|0.047|0.094|0.036| +|hashElement|0.003|0.046|0.001| +|hashHTMLSpans|4.276|5.772|3.965| +|hashPreCodeTags|0.144|0.324|0.110| +|headers|1.418|4.438|1.062| +|horizontalRule|0.227|0.403|0.195| +|images|0.175|0.435|0.129| +|italicsAndBold|0.375|2.407|0.228| +|lists|2.918|3.716|2.526| +|outdent|0.164|0.270|0.138| +|paragraphs|6.444|8.106|5.759| +|spanGamut|4.294|6.106|3.842| +|strikethrough|0.005|0.090|0.000| +|stripLinkDefinitions|0.230|0.286|0.221| +|tables|0.002|0.034|0.001| +|unescapeSpecialChars|0.011|0.080|0.007| + + ## [version 1.9.0](https://github.com/showdownjs/showdown/tree/1.9.0) ### Test Suite: Basic (50 cycles) diff --git a/src/converter.js b/src/converter.js index da960c3..2902f37 100644 --- a/src/converter.js +++ b/src/converter.js @@ -243,7 +243,7 @@ showdown.Converter = function (converterOptions) { }; /** - * Converts a markdown string into HTML + * Converts a markdown string into HTML string * @param {string} text * @returns {*} */ @@ -343,6 +343,11 @@ showdown.Converter = function (converterOptions) { return text; }; + /** + * Converts an HTML string into a markdown string + * @param src + * @returns {string} + */ this.makeMarkdown = function (src) { // replace \r\n with \n diff --git a/test/features/#143.support-image-dimensions.html b/test/functional/cases/features/#143.support-image-dimensions.html similarity index 100% rename from test/features/#143.support-image-dimensions.html rename to test/functional/cases/features/#143.support-image-dimensions.html diff --git a/test/features/#143.support-image-dimensions.md b/test/functional/cases/features/#143.support-image-dimensions.md similarity index 100% rename from test/features/#143.support-image-dimensions.md rename to test/functional/cases/features/#143.support-image-dimensions.md diff --git a/test/features/#164.1.simple-autolink.html b/test/functional/cases/features/#164.1.simple-autolink.html similarity index 100% rename from test/features/#164.1.simple-autolink.html rename to test/functional/cases/features/#164.1.simple-autolink.html diff --git a/test/features/#164.1.simple-autolink.md b/test/functional/cases/features/#164.1.simple-autolink.md similarity index 100% rename from test/features/#164.1.simple-autolink.md rename to test/functional/cases/features/#164.1.simple-autolink.md diff --git a/test/features/#164.2.disallow-underscore-emphasis-mid-word.html b/test/functional/cases/features/#164.2.disallow-underscore-emphasis-mid-word.html similarity index 100% rename from test/features/#164.2.disallow-underscore-emphasis-mid-word.html rename to test/functional/cases/features/#164.2.disallow-underscore-emphasis-mid-word.html diff --git a/test/features/#164.2.disallow-underscore-emphasis-mid-word.md b/test/functional/cases/features/#164.2.disallow-underscore-emphasis-mid-word.md similarity index 100% rename from test/features/#164.2.disallow-underscore-emphasis-mid-word.md rename to test/functional/cases/features/#164.2.disallow-underscore-emphasis-mid-word.md diff --git a/test/features/#164.3.strikethrough.html b/test/functional/cases/features/#164.3.strikethrough.html similarity index 100% rename from test/features/#164.3.strikethrough.html rename to test/functional/cases/features/#164.3.strikethrough.html diff --git a/test/features/#164.3.strikethrough.md b/test/functional/cases/features/#164.3.strikethrough.md similarity index 100% rename from test/features/#164.3.strikethrough.md rename to test/functional/cases/features/#164.3.strikethrough.md diff --git a/test/features/#164.4.tasklists.html b/test/functional/cases/features/#164.4.tasklists.html similarity index 100% rename from test/features/#164.4.tasklists.html rename to test/functional/cases/features/#164.4.tasklists.html diff --git a/test/features/#164.4.tasklists.md b/test/functional/cases/features/#164.4.tasklists.md similarity index 100% rename from test/features/#164.4.tasklists.md rename to test/functional/cases/features/#164.4.tasklists.md diff --git a/test/features/#178.markdown-inside-html-does-not-parse.html b/test/functional/cases/features/#178.markdown-inside-html-does-not-parse.html similarity index 100% rename from test/features/#178.markdown-inside-html-does-not-parse.html rename to test/functional/cases/features/#178.markdown-inside-html-does-not-parse.html diff --git a/test/features/#178.markdown-inside-html-does-not-parse.md b/test/functional/cases/features/#178.markdown-inside-html-does-not-parse.md similarity index 100% rename from test/features/#178.markdown-inside-html-does-not-parse.md rename to test/functional/cases/features/#178.markdown-inside-html-does-not-parse.md diff --git a/test/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.html b/test/functional/cases/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.html similarity index 100% rename from test/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.html rename to test/functional/cases/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.html diff --git a/test/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.md b/test/functional/cases/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.md similarity index 100% rename from test/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.md rename to test/functional/cases/features/#198.literalMidWordUnderscores-changes-behavior-of-asterisk.md diff --git a/test/features/#204.certain-links-with-at-and-dot-break-url.html b/test/functional/cases/features/#204.certain-links-with-at-and-dot-break-url.html similarity index 100% rename from test/features/#204.certain-links-with-at-and-dot-break-url.html rename to test/functional/cases/features/#204.certain-links-with-at-and-dot-break-url.html diff --git a/test/features/#204.certain-links-with-at-and-dot-break-url.md b/test/functional/cases/features/#204.certain-links-with-at-and-dot-break-url.md similarity index 100% rename from test/features/#204.certain-links-with-at-and-dot-break-url.md rename to test/functional/cases/features/#204.certain-links-with-at-and-dot-break-url.md diff --git a/test/features/#206.treat-single-line-breaks-as-br.html b/test/functional/cases/features/#206.treat-single-line-breaks-as-br.html similarity index 100% rename from test/features/#206.treat-single-line-breaks-as-br.html rename to test/functional/cases/features/#206.treat-single-line-breaks-as-br.html diff --git a/test/features/#206.treat-single-line-breaks-as-br.md b/test/functional/cases/features/#206.treat-single-line-breaks-as-br.md similarity index 100% rename from test/features/#206.treat-single-line-breaks-as-br.md rename to test/functional/cases/features/#206.treat-single-line-breaks-as-br.md diff --git a/test/features/#214.escaped-markdown-chars-break-strikethrough.html b/test/functional/cases/features/#214.escaped-markdown-chars-break-strikethrough.html similarity index 100% rename from test/features/#214.escaped-markdown-chars-break-strikethrough.html rename to test/functional/cases/features/#214.escaped-markdown-chars-break-strikethrough.html diff --git a/test/features/#214.escaped-markdown-chars-break-strikethrough.md b/test/functional/cases/features/#214.escaped-markdown-chars-break-strikethrough.md similarity index 100% rename from test/features/#214.escaped-markdown-chars-break-strikethrough.md rename to test/functional/cases/features/#214.escaped-markdown-chars-break-strikethrough.md diff --git a/test/features/#259.es6-template-strings-indentation-issues.html b/test/functional/cases/features/#259.es6-template-strings-indentation-issues.html similarity index 100% rename from test/features/#259.es6-template-strings-indentation-issues.html rename to test/functional/cases/features/#259.es6-template-strings-indentation-issues.html diff --git a/test/features/#259.es6-template-strings-indentation-issues.md b/test/functional/cases/features/#259.es6-template-strings-indentation-issues.md similarity index 100% rename from test/features/#259.es6-template-strings-indentation-issues.md rename to test/functional/cases/features/#259.es6-template-strings-indentation-issues.md diff --git a/test/features/#284.simplifiedAutoLink-does-not-match-GFM-style.html b/test/functional/cases/features/#284.simplifiedAutoLink-does-not-match-GFM-style.html similarity index 100% rename from test/features/#284.simplifiedAutoLink-does-not-match-GFM-style.html rename to test/functional/cases/features/#284.simplifiedAutoLink-does-not-match-GFM-style.html diff --git a/test/features/#284.simplifiedAutoLink-does-not-match-GFM-style.md b/test/functional/cases/features/#284.simplifiedAutoLink-does-not-match-GFM-style.md similarity index 100% rename from test/features/#284.simplifiedAutoLink-does-not-match-GFM-style.md rename to test/functional/cases/features/#284.simplifiedAutoLink-does-not-match-GFM-style.md diff --git a/test/features/#316.new-simpleLineBreaks-option-breaks-lists.html b/test/functional/cases/features/#316.new-simpleLineBreaks-option-breaks-lists.html similarity index 100% rename from test/features/#316.new-simpleLineBreaks-option-breaks-lists.html rename to test/functional/cases/features/#316.new-simpleLineBreaks-option-breaks-lists.html diff --git a/test/features/#316.new-simpleLineBreaks-option-breaks-lists.md b/test/functional/cases/features/#316.new-simpleLineBreaks-option-breaks-lists.md similarity index 100% rename from test/features/#316.new-simpleLineBreaks-option-breaks-lists.md rename to test/functional/cases/features/#316.new-simpleLineBreaks-option-breaks-lists.md diff --git a/test/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.html b/test/functional/cases/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.html similarity index 100% rename from test/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.html rename to test/functional/cases/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.html diff --git a/test/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.md b/test/functional/cases/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.md similarity index 100% rename from test/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.md rename to test/functional/cases/features/#318.simpleLineBreaks-does-not-work-with-chinese-characters.md diff --git a/test/features/#320.github-compatible-generated-header-id.html b/test/functional/cases/features/#320.github-compatible-generated-header-id.html similarity index 100% rename from test/features/#320.github-compatible-generated-header-id.html rename to test/functional/cases/features/#320.github-compatible-generated-header-id.html diff --git a/test/features/#320.github-compatible-generated-header-id.md b/test/functional/cases/features/#320.github-compatible-generated-header-id.md similarity index 100% rename from test/features/#320.github-compatible-generated-header-id.md rename to test/functional/cases/features/#320.github-compatible-generated-header-id.md diff --git a/test/features/#323.simpleLineBreaks-breaks-with-strong.html b/test/functional/cases/features/#323.simpleLineBreaks-breaks-with-strong.html similarity index 100% rename from test/features/#323.simpleLineBreaks-breaks-with-strong.html rename to test/functional/cases/features/#323.simpleLineBreaks-breaks-with-strong.html diff --git a/test/features/#323.simpleLineBreaks-breaks-with-strong.md b/test/functional/cases/features/#323.simpleLineBreaks-breaks-with-strong.md similarity index 100% rename from test/features/#323.simpleLineBreaks-breaks-with-strong.md rename to test/functional/cases/features/#323.simpleLineBreaks-breaks-with-strong.md diff --git a/test/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.html b/test/functional/cases/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.html similarity index 100% rename from test/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.html rename to test/functional/cases/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.html diff --git a/test/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.md b/test/functional/cases/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.md similarity index 100% rename from test/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.md rename to test/functional/cases/features/#330.simplifiedAutoLink-drops-character-before-and-after-linked-mail.md diff --git a/test/features/#331.allow-escaping-of-tilde.html b/test/functional/cases/features/#331.allow-escaping-of-tilde.html similarity index 100% rename from test/features/#331.allow-escaping-of-tilde.html rename to test/functional/cases/features/#331.allow-escaping-of-tilde.html diff --git a/test/features/#331.allow-escaping-of-tilde.md b/test/functional/cases/features/#331.allow-escaping-of-tilde.md similarity index 100% rename from test/features/#331.allow-escaping-of-tilde.md rename to test/functional/cases/features/#331.allow-escaping-of-tilde.md diff --git a/test/features/#374.escape-html-tags.html b/test/functional/cases/features/#374.escape-html-tags.html similarity index 100% rename from test/features/#374.escape-html-tags.html rename to test/functional/cases/features/#374.escape-html-tags.html diff --git a/test/features/#374.escape-html-tags.md b/test/functional/cases/features/#374.escape-html-tags.md similarity index 100% rename from test/features/#374.escape-html-tags.md rename to test/functional/cases/features/#374.escape-html-tags.md diff --git a/test/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.html b/test/functional/cases/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.html similarity index 100% rename from test/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.html rename to test/functional/cases/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.html diff --git a/test/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.md b/test/functional/cases/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.md similarity index 100% rename from test/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.md rename to test/functional/cases/features/#378.simplifiedAutoLinks-with-excludeTrailingPunctuationFromURLs.md diff --git a/test/features/#379.openLinksInNewWindow-breaks-em-markdup.html b/test/functional/cases/features/#379.openLinksInNewWindow-breaks-em-markdup.html similarity index 100% rename from test/features/#379.openLinksInNewWindow-breaks-em-markdup.html rename to test/functional/cases/features/#379.openLinksInNewWindow-breaks-em-markdup.html diff --git a/test/features/#379.openLinksInNewWindow-breaks-em-markdup.md b/test/functional/cases/features/#379.openLinksInNewWindow-breaks-em-markdup.md similarity index 100% rename from test/features/#379.openLinksInNewWindow-breaks-em-markdup.md rename to test/functional/cases/features/#379.openLinksInNewWindow-breaks-em-markdup.md diff --git a/test/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.html b/test/functional/cases/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.html similarity index 100% rename from test/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.html rename to test/functional/cases/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.html diff --git a/test/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.md b/test/functional/cases/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.md similarity index 100% rename from test/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.md rename to test/functional/cases/features/#398.literalMidWordAsterisks-treats-non-word-characters-as-characters.md diff --git a/test/features/#69.header-level-start.html b/test/functional/cases/features/#69.header-level-start.html similarity index 100% rename from test/features/#69.header-level-start.html rename to test/functional/cases/features/#69.header-level-start.html diff --git a/test/features/#69.header-level-start.md b/test/functional/cases/features/#69.header-level-start.md similarity index 100% rename from test/features/#69.header-level-start.md rename to test/functional/cases/features/#69.header-level-start.md diff --git a/test/features/completeHTMLOutput/simple.html b/test/functional/cases/features/completeHTMLOutput/simple.html similarity index 100% rename from test/features/completeHTMLOutput/simple.html rename to test/functional/cases/features/completeHTMLOutput/simple.html diff --git a/test/features/completeHTMLOutput/simple.md b/test/functional/cases/features/completeHTMLOutput/simple.md similarity index 100% rename from test/features/completeHTMLOutput/simple.md rename to test/functional/cases/features/completeHTMLOutput/simple.md diff --git a/test/features/customizedHeaderId-simple.html b/test/functional/cases/features/customizedHeaderId-simple.html similarity index 100% rename from test/features/customizedHeaderId-simple.html rename to test/functional/cases/features/customizedHeaderId-simple.html diff --git a/test/features/customizedHeaderId-simple.md b/test/functional/cases/features/customizedHeaderId-simple.md similarity index 100% rename from test/features/customizedHeaderId-simple.md rename to test/functional/cases/features/customizedHeaderId-simple.md diff --git a/test/features/disable-email-encoding.html b/test/functional/cases/features/disable-email-encoding.html similarity index 100% rename from test/features/disable-email-encoding.html rename to test/functional/cases/features/disable-email-encoding.html diff --git a/test/features/disable-email-encoding.md b/test/functional/cases/features/disable-email-encoding.md similarity index 100% rename from test/features/disable-email-encoding.md rename to test/functional/cases/features/disable-email-encoding.md diff --git a/test/features/disable-gh-codeblocks.html b/test/functional/cases/features/disable-gh-codeblocks.html similarity index 100% rename from test/features/disable-gh-codeblocks.html rename to test/functional/cases/features/disable-gh-codeblocks.html diff --git a/test/features/disable-gh-codeblocks.md b/test/functional/cases/features/disable-gh-codeblocks.md similarity index 100% rename from test/features/disable-gh-codeblocks.md rename to test/functional/cases/features/disable-gh-codeblocks.md diff --git a/test/features/disableForced4SpacesIndentedSublists.html b/test/functional/cases/features/disableForced4SpacesIndentedSublists.html similarity index 100% rename from test/features/disableForced4SpacesIndentedSublists.html rename to test/functional/cases/features/disableForced4SpacesIndentedSublists.html diff --git a/test/features/disableForced4SpacesIndentedSublists.md b/test/functional/cases/features/disableForced4SpacesIndentedSublists.md similarity index 100% rename from test/features/disableForced4SpacesIndentedSublists.md rename to test/functional/cases/features/disableForced4SpacesIndentedSublists.md diff --git a/test/features/disableForced4SpacesIndentedSublists/.gitkeep b/test/functional/cases/features/disableForced4SpacesIndentedSublists/.gitkeep similarity index 100% rename from test/features/disableForced4SpacesIndentedSublists/.gitkeep rename to test/functional/cases/features/disableForced4SpacesIndentedSublists/.gitkeep diff --git a/test/features/emojis/complex.html b/test/functional/cases/features/emojis/complex.html similarity index 100% rename from test/features/emojis/complex.html rename to test/functional/cases/features/emojis/complex.html diff --git a/test/features/emojis/complex.md b/test/functional/cases/features/emojis/complex.md similarity index 100% rename from test/features/emojis/complex.md rename to test/functional/cases/features/emojis/complex.md diff --git a/test/features/emojis/links.html b/test/functional/cases/features/emojis/links.html similarity index 100% rename from test/features/emojis/links.html rename to test/functional/cases/features/emojis/links.html diff --git a/test/features/emojis/links.md b/test/functional/cases/features/emojis/links.md similarity index 100% rename from test/features/emojis/links.md rename to test/functional/cases/features/emojis/links.md diff --git a/test/features/emojis/simple.html b/test/functional/cases/features/emojis/simple.html similarity index 100% rename from test/features/emojis/simple.html rename to test/functional/cases/features/emojis/simple.html diff --git a/test/features/emojis/simple.md b/test/functional/cases/features/emojis/simple.md similarity index 100% rename from test/features/emojis/simple.md rename to test/functional/cases/features/emojis/simple.md diff --git a/test/features/emojis/simplifiedautolinks.html b/test/functional/cases/features/emojis/simplifiedautolinks.html similarity index 100% rename from test/features/emojis/simplifiedautolinks.html rename to test/functional/cases/features/emojis/simplifiedautolinks.html diff --git a/test/features/emojis/simplifiedautolinks.md b/test/functional/cases/features/emojis/simplifiedautolinks.md similarity index 100% rename from test/features/emojis/simplifiedautolinks.md rename to test/functional/cases/features/emojis/simplifiedautolinks.md diff --git a/test/features/emojis/special.html b/test/functional/cases/features/emojis/special.html similarity index 100% rename from test/features/emojis/special.html rename to test/functional/cases/features/emojis/special.html diff --git a/test/features/emojis/special.md b/test/functional/cases/features/emojis/special.md similarity index 100% rename from test/features/emojis/special.md rename to test/functional/cases/features/emojis/special.md diff --git a/test/features/excludeTrailingPunctuationFromURLs-option.html b/test/functional/cases/features/excludeTrailingPunctuationFromURLs-option.html similarity index 100% rename from test/features/excludeTrailingPunctuationFromURLs-option.html rename to test/functional/cases/features/excludeTrailingPunctuationFromURLs-option.html diff --git a/test/features/excludeTrailingPunctuationFromURLs-option.md b/test/functional/cases/features/excludeTrailingPunctuationFromURLs-option.md similarity index 100% rename from test/features/excludeTrailingPunctuationFromURLs-option.md rename to test/functional/cases/features/excludeTrailingPunctuationFromURLs-option.md diff --git a/test/features/ghMentions.html b/test/functional/cases/features/ghMentions.html similarity index 100% rename from test/features/ghMentions.html rename to test/functional/cases/features/ghMentions.html diff --git a/test/features/ghMentions.md b/test/functional/cases/features/ghMentions.md similarity index 100% rename from test/features/ghMentions.md rename to test/functional/cases/features/ghMentions.md diff --git a/test/features/literalMidWordAsterisks/basic.html b/test/functional/cases/features/literalMidWordAsterisks/basic.html similarity index 100% rename from test/features/literalMidWordAsterisks/basic.html rename to test/functional/cases/features/literalMidWordAsterisks/basic.html diff --git a/test/features/literalMidWordAsterisks/basic.md b/test/functional/cases/features/literalMidWordAsterisks/basic.md similarity index 100% rename from test/features/literalMidWordAsterisks/basic.md rename to test/functional/cases/features/literalMidWordAsterisks/basic.md diff --git a/test/features/literalMidWordAsterisks/punctation-test.html b/test/functional/cases/features/literalMidWordAsterisks/punctation-test.html similarity index 100% rename from test/features/literalMidWordAsterisks/punctation-test.html rename to test/functional/cases/features/literalMidWordAsterisks/punctation-test.html diff --git a/test/features/literalMidWordAsterisks/punctation-test.md b/test/functional/cases/features/literalMidWordAsterisks/punctation-test.md similarity index 100% rename from test/features/literalMidWordAsterisks/punctation-test.md rename to test/functional/cases/features/literalMidWordAsterisks/punctation-test.md diff --git a/test/features/literalMidWordUnderscores/basic.html b/test/functional/cases/features/literalMidWordUnderscores/basic.html similarity index 100% rename from test/features/literalMidWordUnderscores/basic.html rename to test/functional/cases/features/literalMidWordUnderscores/basic.html diff --git a/test/features/literalMidWordUnderscores/basic.md b/test/functional/cases/features/literalMidWordUnderscores/basic.md similarity index 100% rename from test/features/literalMidWordUnderscores/basic.md rename to test/functional/cases/features/literalMidWordUnderscores/basic.md diff --git a/test/features/literalMidWordUnderscores/punctation-test.html b/test/functional/cases/features/literalMidWordUnderscores/punctation-test.html similarity index 100% rename from test/features/literalMidWordUnderscores/punctation-test.html rename to test/functional/cases/features/literalMidWordUnderscores/punctation-test.html diff --git a/test/features/literalMidWordUnderscores/punctation-test.md b/test/functional/cases/features/literalMidWordUnderscores/punctation-test.md similarity index 100% rename from test/features/literalMidWordUnderscores/punctation-test.md rename to test/functional/cases/features/literalMidWordUnderscores/punctation-test.md diff --git a/test/features/metadata/dashes-conflict.html b/test/functional/cases/features/metadata/dashes-conflict.html similarity index 100% rename from test/features/metadata/dashes-conflict.html rename to test/functional/cases/features/metadata/dashes-conflict.html diff --git a/test/features/metadata/dashes-conflict.md b/test/functional/cases/features/metadata/dashes-conflict.md similarity index 100% rename from test/features/metadata/dashes-conflict.md rename to test/functional/cases/features/metadata/dashes-conflict.md diff --git a/test/features/metadata/embeded-in-output.html b/test/functional/cases/features/metadata/embeded-in-output.html similarity index 100% rename from test/features/metadata/embeded-in-output.html rename to test/functional/cases/features/metadata/embeded-in-output.html diff --git a/test/features/metadata/embeded-in-output.md b/test/functional/cases/features/metadata/embeded-in-output.md similarity index 100% rename from test/features/metadata/embeded-in-output.md rename to test/functional/cases/features/metadata/embeded-in-output.md diff --git a/test/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.html b/test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.html similarity index 100% rename from test/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.html rename to test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.html diff --git a/test/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.md b/test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.md similarity index 100% rename from test/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.md rename to test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks-different-symbols.md diff --git a/test/features/metadata/embeded-two-consecutive-metadata-blocks.html b/test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks.html similarity index 100% rename from test/features/metadata/embeded-two-consecutive-metadata-blocks.html rename to test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks.html diff --git a/test/features/metadata/embeded-two-consecutive-metadata-blocks.md b/test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks.md similarity index 100% rename from test/features/metadata/embeded-two-consecutive-metadata-blocks.md rename to test/functional/cases/features/metadata/embeded-two-consecutive-metadata-blocks.md diff --git a/test/features/metadata/ignore-metadata.html b/test/functional/cases/features/metadata/ignore-metadata.html similarity index 100% rename from test/features/metadata/ignore-metadata.html rename to test/functional/cases/features/metadata/ignore-metadata.html diff --git a/test/features/metadata/ignore-metadata.md b/test/functional/cases/features/metadata/ignore-metadata.md similarity index 100% rename from test/features/metadata/ignore-metadata.md rename to test/functional/cases/features/metadata/ignore-metadata.md diff --git a/test/features/metadata/simple-angled-for-method.html b/test/functional/cases/features/metadata/simple-angled-for-method.html similarity index 100% rename from test/features/metadata/simple-angled-for-method.html rename to test/functional/cases/features/metadata/simple-angled-for-method.html diff --git a/test/features/metadata/simple-angled-for-method.md b/test/functional/cases/features/metadata/simple-angled-for-method.md similarity index 100% rename from test/features/metadata/simple-angled-for-method.md rename to test/functional/cases/features/metadata/simple-angled-for-method.md diff --git a/test/features/metadata/simple-angled-quotes.html b/test/functional/cases/features/metadata/simple-angled-quotes.html similarity index 100% rename from test/features/metadata/simple-angled-quotes.html rename to test/functional/cases/features/metadata/simple-angled-quotes.html diff --git a/test/features/metadata/simple-angled-quotes.md b/test/functional/cases/features/metadata/simple-angled-quotes.md similarity index 100% rename from test/features/metadata/simple-angled-quotes.md rename to test/functional/cases/features/metadata/simple-angled-quotes.md diff --git a/test/features/metadata/simple-three-dashes.html b/test/functional/cases/features/metadata/simple-three-dashes.html similarity index 100% rename from test/features/metadata/simple-three-dashes.html rename to test/functional/cases/features/metadata/simple-three-dashes.html diff --git a/test/features/metadata/simple-three-dashes.md b/test/functional/cases/features/metadata/simple-three-dashes.md similarity index 100% rename from test/features/metadata/simple-three-dashes.md rename to test/functional/cases/features/metadata/simple-three-dashes.md diff --git a/test/features/metadata/simple-with-format.html b/test/functional/cases/features/metadata/simple-with-format.html similarity index 100% rename from test/features/metadata/simple-with-format.html rename to test/functional/cases/features/metadata/simple-with-format.html diff --git a/test/features/metadata/simple-with-format.md b/test/functional/cases/features/metadata/simple-with-format.md similarity index 100% rename from test/features/metadata/simple-with-format.md rename to test/functional/cases/features/metadata/simple-with-format.md diff --git a/test/features/openLinksInNewWindow/hash-links-open-in-same-page.html b/test/functional/cases/features/openLinksInNewWindow/hash-links-open-in-same-page.html similarity index 100% rename from test/features/openLinksInNewWindow/hash-links-open-in-same-page.html rename to test/functional/cases/features/openLinksInNewWindow/hash-links-open-in-same-page.html diff --git a/test/features/openLinksInNewWindow/hash-links-open-in-same-page.md b/test/functional/cases/features/openLinksInNewWindow/hash-links-open-in-same-page.md similarity index 100% rename from test/features/openLinksInNewWindow/hash-links-open-in-same-page.md rename to test/functional/cases/features/openLinksInNewWindow/hash-links-open-in-same-page.md diff --git a/test/features/openLinksInNewWindow/simple-cases.html b/test/functional/cases/features/openLinksInNewWindow/simple-cases.html similarity index 100% rename from test/features/openLinksInNewWindow/simple-cases.html rename to test/functional/cases/features/openLinksInNewWindow/simple-cases.html diff --git a/test/features/openLinksInNewWindow/simple-cases.md b/test/functional/cases/features/openLinksInNewWindow/simple-cases.md similarity index 100% rename from test/features/openLinksInNewWindow/simple-cases.md rename to test/functional/cases/features/openLinksInNewWindow/simple-cases.md diff --git a/test/features/openLinksInNewWindow/simple.html b/test/functional/cases/features/openLinksInNewWindow/simple.html similarity index 100% rename from test/features/openLinksInNewWindow/simple.html rename to test/functional/cases/features/openLinksInNewWindow/simple.html diff --git a/test/features/openLinksInNewWindow/simple.md b/test/functional/cases/features/openLinksInNewWindow/simple.md similarity index 100% rename from test/features/openLinksInNewWindow/simple.md rename to test/functional/cases/features/openLinksInNewWindow/simple.md diff --git a/test/features/openLinksInNewWindow/simplifiedAutoLink.html b/test/functional/cases/features/openLinksInNewWindow/simplifiedAutoLink.html similarity index 100% rename from test/features/openLinksInNewWindow/simplifiedAutoLink.html rename to test/functional/cases/features/openLinksInNewWindow/simplifiedAutoLink.html diff --git a/test/features/openLinksInNewWindow/simplifiedAutoLink.md b/test/functional/cases/features/openLinksInNewWindow/simplifiedAutoLink.md similarity index 100% rename from test/features/openLinksInNewWindow/simplifiedAutoLink.md rename to test/functional/cases/features/openLinksInNewWindow/simplifiedAutoLink.md diff --git a/test/features/prefixHeaderId-simple.html b/test/functional/cases/features/prefixHeaderId-simple.html similarity index 100% rename from test/features/prefixHeaderId-simple.html rename to test/functional/cases/features/prefixHeaderId-simple.html diff --git a/test/features/prefixHeaderId-simple.md b/test/functional/cases/features/prefixHeaderId-simple.md similarity index 100% rename from test/features/prefixHeaderId-simple.md rename to test/functional/cases/features/prefixHeaderId-simple.md diff --git a/test/features/prefixHeaderId-string-and-ghCompatibleHeaderId.html b/test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId.html similarity index 100% rename from test/features/prefixHeaderId-string-and-ghCompatibleHeaderId.html rename to test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId.html diff --git a/test/features/prefixHeaderId-string-and-ghCompatibleHeaderId.md b/test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId.md similarity index 100% rename from test/features/prefixHeaderId-string-and-ghCompatibleHeaderId.md rename to test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId.md diff --git a/test/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.html b/test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.html similarity index 100% rename from test/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.html rename to test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.html diff --git a/test/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.md b/test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.md similarity index 100% rename from test/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.md rename to test/functional/cases/features/prefixHeaderId-string-and-ghCompatibleHeaderId2.md diff --git a/test/features/prefixHeaderId-string.html b/test/functional/cases/features/prefixHeaderId-string.html similarity index 100% rename from test/features/prefixHeaderId-string.html rename to test/functional/cases/features/prefixHeaderId-string.html diff --git a/test/features/prefixHeaderId-string.md b/test/functional/cases/features/prefixHeaderId-string.md similarity index 100% rename from test/features/prefixHeaderId-string.md rename to test/functional/cases/features/prefixHeaderId-string.md diff --git a/test/features/rawHeaderId/simple.html b/test/functional/cases/features/rawHeaderId/simple.html similarity index 100% rename from test/features/rawHeaderId/simple.html rename to test/functional/cases/features/rawHeaderId/simple.html diff --git a/test/features/rawHeaderId/simple.md b/test/functional/cases/features/rawHeaderId/simple.md similarity index 100% rename from test/features/rawHeaderId/simple.md rename to test/functional/cases/features/rawHeaderId/simple.md diff --git a/test/features/rawHeaderId/with-prefixHeaderId.html b/test/functional/cases/features/rawHeaderId/with-prefixHeaderId.html similarity index 100% rename from test/features/rawHeaderId/with-prefixHeaderId.html rename to test/functional/cases/features/rawHeaderId/with-prefixHeaderId.html diff --git a/test/features/rawHeaderId/with-prefixHeaderId.md b/test/functional/cases/features/rawHeaderId/with-prefixHeaderId.md similarity index 100% rename from test/features/rawHeaderId/with-prefixHeaderId.md rename to test/functional/cases/features/rawHeaderId/with-prefixHeaderId.md diff --git a/test/features/rawPrefixHeaderId/simple-with-prefixHeaderId.html b/test/functional/cases/features/rawPrefixHeaderId/simple-with-prefixHeaderId.html similarity index 100% rename from test/features/rawPrefixHeaderId/simple-with-prefixHeaderId.html rename to test/functional/cases/features/rawPrefixHeaderId/simple-with-prefixHeaderId.html diff --git a/test/features/rawPrefixHeaderId/simple-with-prefixHeaderId.md b/test/functional/cases/features/rawPrefixHeaderId/simple-with-prefixHeaderId.md similarity index 100% rename from test/features/rawPrefixHeaderId/simple-with-prefixHeaderId.md rename to test/functional/cases/features/rawPrefixHeaderId/simple-with-prefixHeaderId.md diff --git a/test/features/requireSpaceBeforeHeadingText.html b/test/functional/cases/features/requireSpaceBeforeHeadingText.html similarity index 100% rename from test/features/requireSpaceBeforeHeadingText.html rename to test/functional/cases/features/requireSpaceBeforeHeadingText.html diff --git a/test/features/requireSpaceBeforeHeadingText.md b/test/functional/cases/features/requireSpaceBeforeHeadingText.md similarity index 100% rename from test/features/requireSpaceBeforeHeadingText.md rename to test/functional/cases/features/requireSpaceBeforeHeadingText.md diff --git a/test/features/simpleLineBreaks-handle-html-pre.html b/test/functional/cases/features/simpleLineBreaks-handle-html-pre.html similarity index 100% rename from test/features/simpleLineBreaks-handle-html-pre.html rename to test/functional/cases/features/simpleLineBreaks-handle-html-pre.html diff --git a/test/features/simpleLineBreaks-handle-html-pre.md b/test/functional/cases/features/simpleLineBreaks-handle-html-pre.md similarity index 100% rename from test/features/simpleLineBreaks-handle-html-pre.md rename to test/functional/cases/features/simpleLineBreaks-handle-html-pre.md diff --git a/test/features/simpleLineBreaks2.html b/test/functional/cases/features/simpleLineBreaks2.html similarity index 100% rename from test/features/simpleLineBreaks2.html rename to test/functional/cases/features/simpleLineBreaks2.html diff --git a/test/features/simpleLineBreaks2.md b/test/functional/cases/features/simpleLineBreaks2.md similarity index 100% rename from test/features/simpleLineBreaks2.md rename to test/functional/cases/features/simpleLineBreaks2.md diff --git a/test/features/simplifiedAutoLink/autolinks-with-magic-chars.html b/test/functional/cases/features/simplifiedAutoLink/autolinks-with-magic-chars.html similarity index 100% rename from test/features/simplifiedAutoLink/autolinks-with-magic-chars.html rename to test/functional/cases/features/simplifiedAutoLink/autolinks-with-magic-chars.html diff --git a/test/features/simplifiedAutoLink/autolinks-with-magic-chars.md b/test/functional/cases/features/simplifiedAutoLink/autolinks-with-magic-chars.md similarity index 100% rename from test/features/simplifiedAutoLink/autolinks-with-magic-chars.md rename to test/functional/cases/features/simplifiedAutoLink/autolinks-with-magic-chars.md diff --git a/test/features/simplifiedAutoLink/blockquote.html b/test/functional/cases/features/simplifiedAutoLink/blockquote.html similarity index 100% rename from test/features/simplifiedAutoLink/blockquote.html rename to test/functional/cases/features/simplifiedAutoLink/blockquote.html diff --git a/test/features/simplifiedAutoLink/blockquote.md b/test/functional/cases/features/simplifiedAutoLink/blockquote.md similarity index 100% rename from test/features/simplifiedAutoLink/blockquote.md rename to test/functional/cases/features/simplifiedAutoLink/blockquote.md diff --git a/test/features/simplifiedAutoLink/disallow-underscores.html b/test/functional/cases/features/simplifiedAutoLink/disallow-underscores.html similarity index 100% rename from test/features/simplifiedAutoLink/disallow-underscores.html rename to test/functional/cases/features/simplifiedAutoLink/disallow-underscores.html diff --git a/test/features/simplifiedAutoLink/disallow-underscores.md b/test/functional/cases/features/simplifiedAutoLink/disallow-underscores.md similarity index 100% rename from test/features/simplifiedAutoLink/disallow-underscores.md rename to test/functional/cases/features/simplifiedAutoLink/disallow-underscores.md diff --git a/test/features/simplifiedAutoLink/does-not-parse-inside-a-tags.html b/test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-a-tags.html similarity index 100% rename from test/features/simplifiedAutoLink/does-not-parse-inside-a-tags.html rename to test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-a-tags.html diff --git a/test/features/simplifiedAutoLink/does-not-parse-inside-a-tags.md b/test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-a-tags.md similarity index 100% rename from test/features/simplifiedAutoLink/does-not-parse-inside-a-tags.md rename to test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-a-tags.md diff --git a/test/features/simplifiedAutoLink/does-not-parse-inside-code.html b/test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-code.html similarity index 100% rename from test/features/simplifiedAutoLink/does-not-parse-inside-code.html rename to test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-code.html diff --git a/test/features/simplifiedAutoLink/does-not-parse-inside-code.md b/test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-code.md similarity index 100% rename from test/features/simplifiedAutoLink/does-not-parse-inside-code.md rename to test/functional/cases/features/simplifiedAutoLink/does-not-parse-inside-code.md diff --git a/test/features/simplifiedAutoLink/does-not-parse-reference-links.html b/test/functional/cases/features/simplifiedAutoLink/does-not-parse-reference-links.html similarity index 100% rename from test/features/simplifiedAutoLink/does-not-parse-reference-links.html rename to test/functional/cases/features/simplifiedAutoLink/does-not-parse-reference-links.html diff --git a/test/features/simplifiedAutoLink/does-not-parse-reference-links.md b/test/functional/cases/features/simplifiedAutoLink/does-not-parse-reference-links.md similarity index 100% rename from test/features/simplifiedAutoLink/does-not-parse-reference-links.md rename to test/functional/cases/features/simplifiedAutoLink/does-not-parse-reference-links.md diff --git a/test/features/simplifiedAutoLink/emphasis-and-strikethrough.html b/test/functional/cases/features/simplifiedAutoLink/emphasis-and-strikethrough.html similarity index 100% rename from test/features/simplifiedAutoLink/emphasis-and-strikethrough.html rename to test/functional/cases/features/simplifiedAutoLink/emphasis-and-strikethrough.html diff --git a/test/features/simplifiedAutoLink/emphasis-and-strikethrough.md b/test/functional/cases/features/simplifiedAutoLink/emphasis-and-strikethrough.md similarity index 100% rename from test/features/simplifiedAutoLink/emphasis-and-strikethrough.md rename to test/functional/cases/features/simplifiedAutoLink/emphasis-and-strikethrough.md diff --git a/test/features/simplifiedAutoLink/ordered-lists.html b/test/functional/cases/features/simplifiedAutoLink/ordered-lists.html similarity index 100% rename from test/features/simplifiedAutoLink/ordered-lists.html rename to test/functional/cases/features/simplifiedAutoLink/ordered-lists.html diff --git a/test/features/simplifiedAutoLink/ordered-lists.md b/test/functional/cases/features/simplifiedAutoLink/ordered-lists.md similarity index 100% rename from test/features/simplifiedAutoLink/ordered-lists.md rename to test/functional/cases/features/simplifiedAutoLink/ordered-lists.md diff --git a/test/features/simplifiedAutoLink/text.html b/test/functional/cases/features/simplifiedAutoLink/text.html similarity index 100% rename from test/features/simplifiedAutoLink/text.html rename to test/functional/cases/features/simplifiedAutoLink/text.html diff --git a/test/features/simplifiedAutoLink/text.md b/test/functional/cases/features/simplifiedAutoLink/text.md similarity index 100% rename from test/features/simplifiedAutoLink/text.md rename to test/functional/cases/features/simplifiedAutoLink/text.md diff --git a/test/features/simplifiedAutoLink/unordered-lists.html b/test/functional/cases/features/simplifiedAutoLink/unordered-lists.html similarity index 100% rename from test/features/simplifiedAutoLink/unordered-lists.html rename to test/functional/cases/features/simplifiedAutoLink/unordered-lists.html diff --git a/test/features/simplifiedAutoLink/unordered-lists.md b/test/functional/cases/features/simplifiedAutoLink/unordered-lists.md similarity index 100% rename from test/features/simplifiedAutoLink/unordered-lists.md rename to test/functional/cases/features/simplifiedAutoLink/unordered-lists.md diff --git a/test/features/splitAdjacentBlockquotes/basic.html b/test/functional/cases/features/splitAdjacentBlockquotes/basic.html similarity index 100% rename from test/features/splitAdjacentBlockquotes/basic.html rename to test/functional/cases/features/splitAdjacentBlockquotes/basic.html diff --git a/test/features/splitAdjacentBlockquotes/basic.md b/test/functional/cases/features/splitAdjacentBlockquotes/basic.md similarity index 100% rename from test/features/splitAdjacentBlockquotes/basic.md rename to test/functional/cases/features/splitAdjacentBlockquotes/basic.md diff --git a/test/features/splitAdjacentBlockquotes/multiline-paragraph.html b/test/functional/cases/features/splitAdjacentBlockquotes/multiline-paragraph.html similarity index 100% rename from test/features/splitAdjacentBlockquotes/multiline-paragraph.html rename to test/functional/cases/features/splitAdjacentBlockquotes/multiline-paragraph.html diff --git a/test/features/splitAdjacentBlockquotes/multiline-paragraph.md b/test/functional/cases/features/splitAdjacentBlockquotes/multiline-paragraph.md similarity index 100% rename from test/features/splitAdjacentBlockquotes/multiline-paragraph.md rename to test/functional/cases/features/splitAdjacentBlockquotes/multiline-paragraph.md diff --git a/test/features/tables/#179.parse-md-in-table-ths.html b/test/functional/cases/features/tables/#179.parse-md-in-table-ths.html similarity index 100% rename from test/features/tables/#179.parse-md-in-table-ths.html rename to test/functional/cases/features/tables/#179.parse-md-in-table-ths.html diff --git a/test/features/tables/#179.parse-md-in-table-ths.md b/test/functional/cases/features/tables/#179.parse-md-in-table-ths.md similarity index 100% rename from test/features/tables/#179.parse-md-in-table-ths.md rename to test/functional/cases/features/tables/#179.parse-md-in-table-ths.md diff --git a/test/features/tables/#256.table-header-separators-should-not-require-3-dashes.html b/test/functional/cases/features/tables/#256.table-header-separators-should-not-require-3-dashes.html similarity index 100% rename from test/features/tables/#256.table-header-separators-should-not-require-3-dashes.html rename to test/functional/cases/features/tables/#256.table-header-separators-should-not-require-3-dashes.html diff --git a/test/features/tables/#256.table-header-separators-should-not-require-3-dashes.md b/test/functional/cases/features/tables/#256.table-header-separators-should-not-require-3-dashes.md similarity index 100% rename from test/features/tables/#256.table-header-separators-should-not-require-3-dashes.md rename to test/functional/cases/features/tables/#256.table-header-separators-should-not-require-3-dashes.md diff --git a/test/features/tables/#345.escape-pipe-character.html b/test/functional/cases/features/tables/#345.escape-pipe-character.html similarity index 100% rename from test/features/tables/#345.escape-pipe-character.html rename to test/functional/cases/features/tables/#345.escape-pipe-character.html diff --git a/test/features/tables/#345.escape-pipe-character.md b/test/functional/cases/features/tables/#345.escape-pipe-character.md similarity index 100% rename from test/features/tables/#345.escape-pipe-character.md rename to test/functional/cases/features/tables/#345.escape-pipe-character.md diff --git a/test/features/tables/#406.does-not-render-one-column-tables.html b/test/functional/cases/features/tables/#406.does-not-render-one-column-tables.html similarity index 100% rename from test/features/tables/#406.does-not-render-one-column-tables.html rename to test/functional/cases/features/tables/#406.does-not-render-one-column-tables.html diff --git a/test/features/tables/#406.does-not-render-one-column-tables.md b/test/functional/cases/features/tables/#406.does-not-render-one-column-tables.md similarity index 100% rename from test/features/tables/#406.does-not-render-one-column-tables.md rename to test/functional/cases/features/tables/#406.does-not-render-one-column-tables.md diff --git a/test/features/tables/#442.trailing-spaces-break-one-column-tables.html b/test/functional/cases/features/tables/#442.trailing-spaces-break-one-column-tables.html similarity index 100% rename from test/features/tables/#442.trailing-spaces-break-one-column-tables.html rename to test/functional/cases/features/tables/#442.trailing-spaces-break-one-column-tables.html diff --git a/test/features/tables/#442.trailing-spaces-break-one-column-tables.md b/test/functional/cases/features/tables/#442.trailing-spaces-break-one-column-tables.md similarity index 100% rename from test/features/tables/#442.trailing-spaces-break-one-column-tables.md rename to test/functional/cases/features/tables/#442.trailing-spaces-break-one-column-tables.md diff --git a/test/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.html b/test/functional/cases/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.html similarity index 100% rename from test/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.html rename to test/functional/cases/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.html diff --git a/test/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.md b/test/functional/cases/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.md similarity index 100% rename from test/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.md rename to test/functional/cases/features/tables/#443.2.table-followed-by-list-does-not-parse-correctly.md diff --git a/test/features/tables/#443.table-followed-by-list-does-not-parse-correctly.html b/test/functional/cases/features/tables/#443.table-followed-by-list-does-not-parse-correctly.html similarity index 100% rename from test/features/tables/#443.table-followed-by-list-does-not-parse-correctly.html rename to test/functional/cases/features/tables/#443.table-followed-by-list-does-not-parse-correctly.html diff --git a/test/features/tables/#443.table-followed-by-list-does-not-parse-correctly.md b/test/functional/cases/features/tables/#443.table-followed-by-list-does-not-parse-correctly.md similarity index 100% rename from test/features/tables/#443.table-followed-by-list-does-not-parse-correctly.md rename to test/functional/cases/features/tables/#443.table-followed-by-list-does-not-parse-correctly.md diff --git a/test/features/tables/#465.code-spans-with-pipes-break-table.html b/test/functional/cases/features/tables/#465.code-spans-with-pipes-break-table.html similarity index 100% rename from test/features/tables/#465.code-spans-with-pipes-break-table.html rename to test/functional/cases/features/tables/#465.code-spans-with-pipes-break-table.html diff --git a/test/features/tables/#465.code-spans-with-pipes-break-table.md b/test/functional/cases/features/tables/#465.code-spans-with-pipes-break-table.md similarity index 100% rename from test/features/tables/#465.code-spans-with-pipes-break-table.md rename to test/functional/cases/features/tables/#465.code-spans-with-pipes-break-table.md diff --git a/test/features/tables/#471.ol-is-not-rendered-correctly-inside-table.html b/test/functional/cases/features/tables/#471.ol-is-not-rendered-correctly-inside-table.html similarity index 100% rename from test/features/tables/#471.ol-is-not-rendered-correctly-inside-table.html rename to test/functional/cases/features/tables/#471.ol-is-not-rendered-correctly-inside-table.html diff --git a/test/features/tables/#471.ol-is-not-rendered-correctly-inside-table.md b/test/functional/cases/features/tables/#471.ol-is-not-rendered-correctly-inside-table.md similarity index 100% rename from test/features/tables/#471.ol-is-not-rendered-correctly-inside-table.md rename to test/functional/cases/features/tables/#471.ol-is-not-rendered-correctly-inside-table.md diff --git a/test/features/tables/basic-alignment.html b/test/functional/cases/features/tables/basic-alignment.html similarity index 100% rename from test/features/tables/basic-alignment.html rename to test/functional/cases/features/tables/basic-alignment.html diff --git a/test/features/tables/basic-alignment.md b/test/functional/cases/features/tables/basic-alignment.md similarity index 100% rename from test/features/tables/basic-alignment.md rename to test/functional/cases/features/tables/basic-alignment.md diff --git a/test/features/tables/basic-with-header-ids.html b/test/functional/cases/features/tables/basic-with-header-ids.html similarity index 100% rename from test/features/tables/basic-with-header-ids.html rename to test/functional/cases/features/tables/basic-with-header-ids.html diff --git a/test/features/tables/basic-with-header-ids.md b/test/functional/cases/features/tables/basic-with-header-ids.md similarity index 100% rename from test/features/tables/basic-with-header-ids.md rename to test/functional/cases/features/tables/basic-with-header-ids.md diff --git a/test/features/tables/basic.html b/test/functional/cases/features/tables/basic.html similarity index 100% rename from test/features/tables/basic.html rename to test/functional/cases/features/tables/basic.html diff --git a/test/features/tables/basic.md b/test/functional/cases/features/tables/basic.md similarity index 100% rename from test/features/tables/basic.md rename to test/functional/cases/features/tables/basic.md diff --git a/test/features/tables/gh-style-tables.html b/test/functional/cases/features/tables/gh-style-tables.html similarity index 100% rename from test/features/tables/gh-style-tables.html rename to test/functional/cases/features/tables/gh-style-tables.html diff --git a/test/features/tables/gh-style-tables.md b/test/functional/cases/features/tables/gh-style-tables.md similarity index 100% rename from test/features/tables/gh-style-tables.md rename to test/functional/cases/features/tables/gh-style-tables.md diff --git a/test/features/tables/large-table-with-allignments.html b/test/functional/cases/features/tables/large-table-with-allignments.html similarity index 100% rename from test/features/tables/large-table-with-allignments.html rename to test/functional/cases/features/tables/large-table-with-allignments.html diff --git a/test/features/tables/large-table-with-allignments.md b/test/functional/cases/features/tables/large-table-with-allignments.md similarity index 100% rename from test/features/tables/large-table-with-allignments.md rename to test/functional/cases/features/tables/large-table-with-allignments.md diff --git a/test/features/tables/large.html b/test/functional/cases/features/tables/large.html similarity index 100% rename from test/features/tables/large.html rename to test/functional/cases/features/tables/large.html diff --git a/test/features/tables/large.md b/test/functional/cases/features/tables/large.md similarity index 100% rename from test/features/tables/large.md rename to test/functional/cases/features/tables/large.md diff --git a/test/features/tables/mixed-alignment.html b/test/functional/cases/features/tables/mixed-alignment.html similarity index 100% rename from test/features/tables/mixed-alignment.html rename to test/functional/cases/features/tables/mixed-alignment.html diff --git a/test/features/tables/mixed-alignment.md b/test/functional/cases/features/tables/mixed-alignment.md similarity index 100% rename from test/features/tables/mixed-alignment.md rename to test/functional/cases/features/tables/mixed-alignment.md diff --git a/test/features/tables/multiple-tables.html b/test/functional/cases/features/tables/multiple-tables.html similarity index 100% rename from test/features/tables/multiple-tables.html rename to test/functional/cases/features/tables/multiple-tables.html diff --git a/test/features/tables/multiple-tables.md b/test/functional/cases/features/tables/multiple-tables.md similarity index 100% rename from test/features/tables/multiple-tables.md rename to test/functional/cases/features/tables/multiple-tables.md diff --git a/test/features/tables/table-inside-codeblock.html b/test/functional/cases/features/tables/table-inside-codeblock.html similarity index 100% rename from test/features/tables/table-inside-codeblock.html rename to test/functional/cases/features/tables/table-inside-codeblock.html diff --git a/test/features/tables/table-inside-codeblock.md b/test/functional/cases/features/tables/table-inside-codeblock.md similarity index 100% rename from test/features/tables/table-inside-codeblock.md rename to test/functional/cases/features/tables/table-inside-codeblock.md diff --git a/test/features/tables/table-without-leading-pipe.html b/test/functional/cases/features/tables/table-without-leading-pipe.html similarity index 100% rename from test/features/tables/table-without-leading-pipe.html rename to test/functional/cases/features/tables/table-without-leading-pipe.html diff --git a/test/features/tables/table-without-leading-pipe.md b/test/functional/cases/features/tables/table-without-leading-pipe.md similarity index 100% rename from test/features/tables/table-without-leading-pipe.md rename to test/functional/cases/features/tables/table-without-leading-pipe.md diff --git a/test/features/tables/with-equals.html b/test/functional/cases/features/tables/with-equals.html similarity index 100% rename from test/features/tables/with-equals.html rename to test/functional/cases/features/tables/with-equals.html diff --git a/test/features/tables/with-equals.md b/test/functional/cases/features/tables/with-equals.md similarity index 100% rename from test/features/tables/with-equals.md rename to test/functional/cases/features/tables/with-equals.md diff --git a/test/features/tables/with-span-elements.html b/test/functional/cases/features/tables/with-span-elements.html similarity index 100% rename from test/features/tables/with-span-elements.html rename to test/functional/cases/features/tables/with-span-elements.html diff --git a/test/features/tables/with-span-elements.md b/test/functional/cases/features/tables/with-span-elements.md similarity index 100% rename from test/features/tables/with-span-elements.md rename to test/functional/cases/features/tables/with-span-elements.md diff --git a/test/features/tables/with-surroundings.html b/test/functional/cases/features/tables/with-surroundings.html similarity index 100% rename from test/features/tables/with-surroundings.html rename to test/functional/cases/features/tables/with-surroundings.html diff --git a/test/features/tables/with-surroundings.md b/test/functional/cases/features/tables/with-surroundings.md similarity index 100% rename from test/features/tables/with-surroundings.md rename to test/functional/cases/features/tables/with-surroundings.md diff --git a/test/features/tables/without-body.html b/test/functional/cases/features/tables/without-body.html similarity index 100% rename from test/features/tables/without-body.html rename to test/functional/cases/features/tables/without-body.html diff --git a/test/features/tables/without-body.md b/test/functional/cases/features/tables/without-body.md similarity index 100% rename from test/features/tables/without-body.md rename to test/functional/cases/features/tables/without-body.md diff --git a/test/features/tables/without-header-delimiter.html b/test/functional/cases/features/tables/without-header-delimiter.html similarity index 100% rename from test/features/tables/without-header-delimiter.html rename to test/functional/cases/features/tables/without-header-delimiter.html diff --git a/test/features/tables/without-header-delimiter.md b/test/functional/cases/features/tables/without-header-delimiter.md similarity index 100% rename from test/features/tables/without-header-delimiter.md rename to test/functional/cases/features/tables/without-header-delimiter.md diff --git a/test/features/underline/fulltext.html b/test/functional/cases/features/underline/fulltext.html similarity index 100% rename from test/features/underline/fulltext.html rename to test/functional/cases/features/underline/fulltext.html diff --git a/test/features/underline/fulltext.md b/test/functional/cases/features/underline/fulltext.md similarity index 100% rename from test/features/underline/fulltext.md rename to test/functional/cases/features/underline/fulltext.md diff --git a/test/features/underline/simple.html b/test/functional/cases/features/underline/simple.html similarity index 100% rename from test/features/underline/simple.html rename to test/functional/cases/features/underline/simple.html diff --git a/test/features/underline/simple.md b/test/functional/cases/features/underline/simple.md similarity index 100% rename from test/features/underline/simple.md rename to test/functional/cases/features/underline/simple.md diff --git a/test/ghost/markdown-magic.html b/test/functional/cases/ghost/markdown-magic.html similarity index 100% rename from test/ghost/markdown-magic.html rename to test/functional/cases/ghost/markdown-magic.html diff --git a/test/ghost/markdown-magic.md b/test/functional/cases/ghost/markdown-magic.md similarity index 100% rename from test/ghost/markdown-magic.md rename to test/functional/cases/ghost/markdown-magic.md diff --git a/test/ghost/underscore.html b/test/functional/cases/ghost/underscore.html similarity index 100% rename from test/ghost/underscore.html rename to test/functional/cases/ghost/underscore.html diff --git a/test/ghost/underscore.md b/test/functional/cases/ghost/underscore.md similarity index 100% rename from test/ghost/underscore.md rename to test/functional/cases/ghost/underscore.md diff --git a/test/issues/#107.inner-underscore-parse-to-block.html b/test/functional/cases/issues/#107.inner-underscore-parse-to-block.html similarity index 100% rename from test/issues/#107.inner-underscore-parse-to-block.html rename to test/functional/cases/issues/#107.inner-underscore-parse-to-block.html diff --git a/test/issues/#107.inner-underscore-parse-to-block.md b/test/functional/cases/issues/#107.inner-underscore-parse-to-block.md similarity index 100% rename from test/issues/#107.inner-underscore-parse-to-block.md rename to test/functional/cases/issues/#107.inner-underscore-parse-to-block.md diff --git a/test/issues/#142.odd-behaviour-for-multiple-consecutive-lists.html b/test/functional/cases/issues/#142.odd-behaviour-for-multiple-consecutive-lists.html similarity index 100% rename from test/issues/#142.odd-behaviour-for-multiple-consecutive-lists.html rename to test/functional/cases/issues/#142.odd-behaviour-for-multiple-consecutive-lists.html diff --git a/test/issues/#142.odd-behaviour-for-multiple-consecutive-lists.md b/test/functional/cases/issues/#142.odd-behaviour-for-multiple-consecutive-lists.md similarity index 100% rename from test/issues/#142.odd-behaviour-for-multiple-consecutive-lists.md rename to test/functional/cases/issues/#142.odd-behaviour-for-multiple-consecutive-lists.md diff --git a/test/issues/#150.hyphens-are-getting-removed.html b/test/functional/cases/issues/#150.hyphens-are-getting-removed.html similarity index 100% rename from test/issues/#150.hyphens-are-getting-removed.html rename to test/functional/cases/issues/#150.hyphens-are-getting-removed.html diff --git a/test/issues/#150.hyphens-are-getting-removed.md b/test/functional/cases/issues/#150.hyphens-are-getting-removed.md similarity index 100% rename from test/issues/#150.hyphens-are-getting-removed.md rename to test/functional/cases/issues/#150.hyphens-are-getting-removed.md diff --git a/test/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.html b/test/functional/cases/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.html similarity index 100% rename from test/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.html rename to test/functional/cases/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.html diff --git a/test/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.md b/test/functional/cases/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.md similarity index 100% rename from test/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.md rename to test/functional/cases/issues/#183.gh-code-blocks-within-lists-do-not-render-properly.md diff --git a/test/issues/#191.blockquote-followed-by-an-heading.html b/test/functional/cases/issues/#191.blockquote-followed-by-an-heading.html similarity index 100% rename from test/issues/#191.blockquote-followed-by-an-heading.html rename to test/functional/cases/issues/#191.blockquote-followed-by-an-heading.html diff --git a/test/issues/#191.blockquote-followed-by-an-heading.md b/test/functional/cases/issues/#191.blockquote-followed-by-an-heading.md similarity index 100% rename from test/issues/#191.blockquote-followed-by-an-heading.md rename to test/functional/cases/issues/#191.blockquote-followed-by-an-heading.md diff --git a/test/issues/#196.entity-in-code-block-in-nested-list.html b/test/functional/cases/issues/#196.entity-in-code-block-in-nested-list.html similarity index 100% rename from test/issues/#196.entity-in-code-block-in-nested-list.html rename to test/functional/cases/issues/#196.entity-in-code-block-in-nested-list.html diff --git a/test/issues/#196.entity-in-code-block-in-nested-list.md b/test/functional/cases/issues/#196.entity-in-code-block-in-nested-list.md similarity index 100% rename from test/issues/#196.entity-in-code-block-in-nested-list.md rename to test/functional/cases/issues/#196.entity-in-code-block-in-nested-list.md diff --git a/test/issues/#220.html-breaks-markdown-parsing.html b/test/functional/cases/issues/#220.html-breaks-markdown-parsing.html similarity index 100% rename from test/issues/#220.html-breaks-markdown-parsing.html rename to test/functional/cases/issues/#220.html-breaks-markdown-parsing.html diff --git a/test/issues/#220.html-breaks-markdown-parsing.md b/test/functional/cases/issues/#220.html-breaks-markdown-parsing.md similarity index 100% rename from test/issues/#220.html-breaks-markdown-parsing.md rename to test/functional/cases/issues/#220.html-breaks-markdown-parsing.md diff --git a/test/issues/#229.2.code-being-parsed-inside-HTML-code-tags.html b/test/functional/cases/issues/#229.2.code-being-parsed-inside-HTML-code-tags.html similarity index 100% rename from test/issues/#229.2.code-being-parsed-inside-HTML-code-tags.html rename to test/functional/cases/issues/#229.2.code-being-parsed-inside-HTML-code-tags.html diff --git a/test/issues/#229.2.code-being-parsed-inside-HTML-code-tags.md b/test/functional/cases/issues/#229.2.code-being-parsed-inside-HTML-code-tags.md similarity index 100% rename from test/issues/#229.2.code-being-parsed-inside-HTML-code-tags.md rename to test/functional/cases/issues/#229.2.code-being-parsed-inside-HTML-code-tags.md diff --git a/test/issues/#229.code-being-parsed-inside-HTML-code-tags.html b/test/functional/cases/issues/#229.code-being-parsed-inside-HTML-code-tags.html similarity index 100% rename from test/issues/#229.code-being-parsed-inside-HTML-code-tags.html rename to test/functional/cases/issues/#229.code-being-parsed-inside-HTML-code-tags.html diff --git a/test/issues/#229.code-being-parsed-inside-HTML-code-tags.md b/test/functional/cases/issues/#229.code-being-parsed-inside-HTML-code-tags.md similarity index 100% rename from test/issues/#229.code-being-parsed-inside-HTML-code-tags.md rename to test/functional/cases/issues/#229.code-being-parsed-inside-HTML-code-tags.md diff --git a/test/issues/#230.paragraphs-are-ignored-between-code-tags.html b/test/functional/cases/issues/#230.paragraphs-are-ignored-between-code-tags.html similarity index 100% rename from test/issues/#230.paragraphs-are-ignored-between-code-tags.html rename to test/functional/cases/issues/#230.paragraphs-are-ignored-between-code-tags.html diff --git a/test/issues/#230.paragraphs-are-ignored-between-code-tags.md b/test/functional/cases/issues/#230.paragraphs-are-ignored-between-code-tags.md similarity index 100% rename from test/issues/#230.paragraphs-are-ignored-between-code-tags.md rename to test/functional/cases/issues/#230.paragraphs-are-ignored-between-code-tags.md diff --git a/test/issues/#236.wrong-lt-parsing-when-attached-to-word.html b/test/functional/cases/issues/#236.wrong-lt-parsing-when-attached-to-word.html similarity index 100% rename from test/issues/#236.wrong-lt-parsing-when-attached-to-word.html rename to test/functional/cases/issues/#236.wrong-lt-parsing-when-attached-to-word.html diff --git a/test/issues/#236.wrong-lt-parsing-when-attached-to-word.md b/test/functional/cases/issues/#236.wrong-lt-parsing-when-attached-to-word.md similarity index 100% rename from test/issues/#236.wrong-lt-parsing-when-attached-to-word.md rename to test/functional/cases/issues/#236.wrong-lt-parsing-when-attached-to-word.md diff --git a/test/issues/#261.mix-images-with-links.html b/test/functional/cases/issues/#261.mix-images-with-links.html similarity index 100% rename from test/issues/#261.mix-images-with-links.html rename to test/functional/cases/issues/#261.mix-images-with-links.html diff --git a/test/issues/#261.mix-images-with-links.md b/test/functional/cases/issues/#261.mix-images-with-links.md similarity index 100% rename from test/issues/#261.mix-images-with-links.md rename to test/functional/cases/issues/#261.mix-images-with-links.md diff --git a/test/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.html b/test/functional/cases/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.html similarity index 100% rename from test/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.html rename to test/functional/cases/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.html diff --git a/test/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.md b/test/functional/cases/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.md similarity index 100% rename from test/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.md rename to test/functional/cases/issues/#261.reference-style-image-after-inline-style-image-does-not-work-correctely.md diff --git a/test/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.html b/test/functional/cases/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.html similarity index 100% rename from test/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.html rename to test/functional/cases/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.html diff --git a/test/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.md b/test/functional/cases/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.md similarity index 100% rename from test/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.md rename to test/functional/cases/issues/#261.reference-style-link-after-inline-style-link-does-not-work-correctely.md diff --git a/test/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.html b/test/functional/cases/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.html similarity index 100% rename from test/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.html rename to test/functional/cases/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.html diff --git a/test/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.md b/test/functional/cases/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.md similarity index 100% rename from test/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.md rename to test/functional/cases/issues/#288.code-blocks-containing-xml-comments-are-not-converted-correctly-when-nested-in-list-items.md diff --git a/test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.html b/test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.html similarity index 100% rename from test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.html rename to test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.html diff --git a/test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.md b/test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.md similarity index 100% rename from test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.md rename to test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-2.md diff --git a/test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.html b/test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.html similarity index 100% rename from test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.html rename to test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.html diff --git a/test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.md b/test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.md similarity index 100% rename from test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.md rename to test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior-3.md diff --git a/test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.html b/test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.html similarity index 100% rename from test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.html rename to test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.html diff --git a/test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.md b/test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.md similarity index 100% rename from test/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.md rename to test/functional/cases/issues/#299.nested-ordered-unordered-list-inconsistent-behavior.md diff --git a/test/issues/#312.spaced-dashes-followed-by-char.html b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char.html similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char.html rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char.html diff --git a/test/issues/#312.spaced-dashes-followed-by-char.md b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char.md similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char.md rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char.md diff --git a/test/issues/#312.spaced-dashes-followed-by-char2.html b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char2.html similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char2.html rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char2.html diff --git a/test/issues/#312.spaced-dashes-followed-by-char2.md b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char2.md similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char2.md rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char2.md diff --git a/test/issues/#312.spaced-dashes-followed-by-char3.html b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char3.html similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char3.html rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char3.html diff --git a/test/issues/#312.spaced-dashes-followed-by-char3.md b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char3.md similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char3.md rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char3.md diff --git a/test/issues/#312.spaced-dashes-followed-by-char4.html b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char4.html similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char4.html rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char4.html diff --git a/test/issues/#312.spaced-dashes-followed-by-char4.md b/test/functional/cases/issues/#312.spaced-dashes-followed-by-char4.md similarity index 100% rename from test/issues/#312.spaced-dashes-followed-by-char4.md rename to test/functional/cases/issues/#312.spaced-dashes-followed-by-char4.md diff --git a/test/issues/#317.spaces-before-hr.html b/test/functional/cases/issues/#317.spaces-before-hr.html similarity index 100% rename from test/issues/#317.spaces-before-hr.html rename to test/functional/cases/issues/#317.spaces-before-hr.html diff --git a/test/issues/#317.spaces-before-hr.md b/test/functional/cases/issues/#317.spaces-before-hr.md similarity index 100% rename from test/issues/#317.spaces-before-hr.md rename to test/functional/cases/issues/#317.spaces-before-hr.md diff --git a/test/issues/#332.inconsistent-behavior-of-emphasis-and-strong.html b/test/functional/cases/issues/#332.inconsistent-behavior-of-emphasis-and-strong.html similarity index 100% rename from test/issues/#332.inconsistent-behavior-of-emphasis-and-strong.html rename to test/functional/cases/issues/#332.inconsistent-behavior-of-emphasis-and-strong.html diff --git a/test/issues/#332.inconsistent-behavior-of-emphasis-and-strong.md b/test/functional/cases/issues/#332.inconsistent-behavior-of-emphasis-and-strong.md similarity index 100% rename from test/issues/#332.inconsistent-behavior-of-emphasis-and-strong.md rename to test/functional/cases/issues/#332.inconsistent-behavior-of-emphasis-and-strong.md diff --git a/test/issues/#345.no-escape-for-the-pipe-character.html b/test/functional/cases/issues/#345.no-escape-for-the-pipe-character.html similarity index 100% rename from test/issues/#345.no-escape-for-the-pipe-character.html rename to test/functional/cases/issues/#345.no-escape-for-the-pipe-character.html diff --git a/test/issues/#345.no-escape-for-the-pipe-character.md b/test/functional/cases/issues/#345.no-escape-for-the-pipe-character.md similarity index 100% rename from test/issues/#345.no-escape-for-the-pipe-character.md rename to test/functional/cases/issues/#345.no-escape-for-the-pipe-character.md diff --git a/test/issues/#390.brackets-in-URL-break-images.html b/test/functional/cases/issues/#390.brackets-in-URL-break-images.html similarity index 100% rename from test/issues/#390.brackets-in-URL-break-images.html rename to test/functional/cases/issues/#390.brackets-in-URL-break-images.html diff --git a/test/issues/#390.brackets-in-URL-break-images.md b/test/functional/cases/issues/#390.brackets-in-URL-break-images.md similarity index 100% rename from test/issues/#390.brackets-in-URL-break-images.md rename to test/functional/cases/issues/#390.brackets-in-URL-break-images.md diff --git a/test/issues/#390.brackets-in-URL-break-links.html b/test/functional/cases/issues/#390.brackets-in-URL-break-links.html similarity index 100% rename from test/issues/#390.brackets-in-URL-break-links.html rename to test/functional/cases/issues/#390.brackets-in-URL-break-links.html diff --git a/test/issues/#390.brackets-in-URL-break-links.md b/test/functional/cases/issues/#390.brackets-in-URL-break-links.md similarity index 100% rename from test/issues/#390.brackets-in-URL-break-links.md rename to test/functional/cases/issues/#390.brackets-in-URL-break-links.md diff --git a/test/issues/#393.showdown-hangs-with-malformed-html.html b/test/functional/cases/issues/#393.showdown-hangs-with-malformed-html.html similarity index 100% rename from test/issues/#393.showdown-hangs-with-malformed-html.html rename to test/functional/cases/issues/#393.showdown-hangs-with-malformed-html.html diff --git a/test/issues/#393.showdown-hangs-with-malformed-html.md b/test/functional/cases/issues/#393.showdown-hangs-with-malformed-html.md similarity index 100% rename from test/issues/#393.showdown-hangs-with-malformed-html.md rename to test/functional/cases/issues/#393.showdown-hangs-with-malformed-html.md diff --git a/test/issues/#397.unordered-list-strange-behavior.html b/test/functional/cases/issues/#397.unordered-list-strange-behavior.html similarity index 100% rename from test/issues/#397.unordered-list-strange-behavior.html rename to test/functional/cases/issues/#397.unordered-list-strange-behavior.html diff --git a/test/issues/#397.unordered-list-strange-behavior.md b/test/functional/cases/issues/#397.unordered-list-strange-behavior.md similarity index 100% rename from test/issues/#397.unordered-list-strange-behavior.md rename to test/functional/cases/issues/#397.unordered-list-strange-behavior.md diff --git a/test/issues/#429.multiline-base64-image-support.html b/test/functional/cases/issues/#429.multiline-base64-image-support.html similarity index 100% rename from test/issues/#429.multiline-base64-image-support.html rename to test/functional/cases/issues/#429.multiline-base64-image-support.html diff --git a/test/issues/#429.multiline-base64-image-support.md b/test/functional/cases/issues/#429.multiline-base64-image-support.md similarity index 100% rename from test/issues/#429.multiline-base64-image-support.md rename to test/functional/cases/issues/#429.multiline-base64-image-support.md diff --git a/test/issues/#467.header-ids-for-subheadings.html b/test/functional/cases/issues/#467.header-ids-for-subheadings.html similarity index 100% rename from test/issues/#467.header-ids-for-subheadings.html rename to test/functional/cases/issues/#467.header-ids-for-subheadings.html diff --git a/test/issues/#467.header-ids-for-subheadings.md b/test/functional/cases/issues/#467.header-ids-for-subheadings.md similarity index 100% rename from test/issues/#467.header-ids-for-subheadings.md rename to test/functional/cases/issues/#467.header-ids-for-subheadings.md diff --git a/test/issues/#83.parsed-text-links-with-underscores.html b/test/functional/cases/issues/#83.parsed-text-links-with-underscores.html similarity index 100% rename from test/issues/#83.parsed-text-links-with-underscores.html rename to test/functional/cases/issues/#83.parsed-text-links-with-underscores.html diff --git a/test/issues/#83.parsed-text-links-with-underscores.md b/test/functional/cases/issues/#83.parsed-text-links-with-underscores.md similarity index 100% rename from test/issues/#83.parsed-text-links-with-underscores.md rename to test/functional/cases/issues/#83.parsed-text-links-with-underscores.md diff --git a/test/issues/#96.underscores-in-links.html b/test/functional/cases/issues/#96.underscores-in-links.html similarity index 100% rename from test/issues/#96.underscores-in-links.html rename to test/functional/cases/issues/#96.underscores-in-links.html diff --git a/test/issues/#96.underscores-in-links.md b/test/functional/cases/issues/#96.underscores-in-links.md similarity index 100% rename from test/issues/#96.underscores-in-links.md rename to test/functional/cases/issues/#96.underscores-in-links.md diff --git a/test/issues/URLs-with-multiple-parenthesis.html b/test/functional/cases/issues/URLs-with-multiple-parenthesis.html similarity index 100% rename from test/issues/URLs-with-multiple-parenthesis.html rename to test/functional/cases/issues/URLs-with-multiple-parenthesis.html diff --git a/test/issues/URLs-with-multiple-parenthesis.md b/test/functional/cases/issues/URLs-with-multiple-parenthesis.md similarity index 100% rename from test/issues/URLs-with-multiple-parenthesis.md rename to test/functional/cases/issues/URLs-with-multiple-parenthesis.md diff --git a/test/issues/crazy-urls.html b/test/functional/cases/issues/crazy-urls.html similarity index 100% rename from test/issues/crazy-urls.html rename to test/functional/cases/issues/crazy-urls.html diff --git a/test/issues/crazy-urls.md b/test/functional/cases/issues/crazy-urls.md similarity index 100% rename from test/issues/crazy-urls.md rename to test/functional/cases/issues/crazy-urls.md diff --git a/test/issues/deeply-nested-HTML-blocks.html b/test/functional/cases/issues/deeply-nested-HTML-blocks.html similarity index 100% rename from test/issues/deeply-nested-HTML-blocks.html rename to test/functional/cases/issues/deeply-nested-HTML-blocks.html diff --git a/test/issues/deeply-nested-HTML-blocks.md b/test/functional/cases/issues/deeply-nested-HTML-blocks.md similarity index 100% rename from test/issues/deeply-nested-HTML-blocks.md rename to test/functional/cases/issues/deeply-nested-HTML-blocks.md diff --git a/test/issues/handle-html-pre.html b/test/functional/cases/issues/handle-html-pre.html similarity index 100% rename from test/issues/handle-html-pre.html rename to test/functional/cases/issues/handle-html-pre.html diff --git a/test/issues/handle-html-pre.md b/test/functional/cases/issues/handle-html-pre.md similarity index 100% rename from test/issues/handle-html-pre.md rename to test/functional/cases/issues/handle-html-pre.md diff --git a/test/issues/one-line-HTML-input.html b/test/functional/cases/issues/one-line-HTML-input.html similarity index 100% rename from test/issues/one-line-HTML-input.html rename to test/functional/cases/issues/one-line-HTML-input.html diff --git a/test/issues/one-line-HTML-input.md b/test/functional/cases/issues/one-line-HTML-input.md similarity index 100% rename from test/issues/one-line-HTML-input.md rename to test/functional/cases/issues/one-line-HTML-input.md diff --git a/test/karlcow/2-paragraphs-hard-return-spaces.html b/test/functional/cases/karlcow/2-paragraphs-hard-return-spaces.html similarity index 100% rename from test/karlcow/2-paragraphs-hard-return-spaces.html rename to test/functional/cases/karlcow/2-paragraphs-hard-return-spaces.html diff --git a/test/karlcow/2-paragraphs-hard-return-spaces.md b/test/functional/cases/karlcow/2-paragraphs-hard-return-spaces.md similarity index 100% rename from test/karlcow/2-paragraphs-hard-return-spaces.md rename to test/functional/cases/karlcow/2-paragraphs-hard-return-spaces.md diff --git a/test/karlcow/2-paragraphs-hard-return.html b/test/functional/cases/karlcow/2-paragraphs-hard-return.html similarity index 100% rename from test/karlcow/2-paragraphs-hard-return.html rename to test/functional/cases/karlcow/2-paragraphs-hard-return.html diff --git a/test/karlcow/2-paragraphs-hard-return.md b/test/functional/cases/karlcow/2-paragraphs-hard-return.md similarity index 100% rename from test/karlcow/2-paragraphs-hard-return.md rename to test/functional/cases/karlcow/2-paragraphs-hard-return.md diff --git a/test/karlcow/2-paragraphs-line-returns.html b/test/functional/cases/karlcow/2-paragraphs-line-returns.html similarity index 100% rename from test/karlcow/2-paragraphs-line-returns.html rename to test/functional/cases/karlcow/2-paragraphs-line-returns.html diff --git a/test/karlcow/2-paragraphs-line-returns.md b/test/functional/cases/karlcow/2-paragraphs-line-returns.md similarity index 100% rename from test/karlcow/2-paragraphs-line-returns.md rename to test/functional/cases/karlcow/2-paragraphs-line-returns.md diff --git a/test/karlcow/2-paragraphs-line-spaces.html b/test/functional/cases/karlcow/2-paragraphs-line-spaces.html similarity index 100% rename from test/karlcow/2-paragraphs-line-spaces.html rename to test/functional/cases/karlcow/2-paragraphs-line-spaces.html diff --git a/test/karlcow/2-paragraphs-line-spaces.md b/test/functional/cases/karlcow/2-paragraphs-line-spaces.md similarity index 100% rename from test/karlcow/2-paragraphs-line-spaces.md rename to test/functional/cases/karlcow/2-paragraphs-line-spaces.md diff --git a/test/karlcow/2-paragraphs-line-tab.html b/test/functional/cases/karlcow/2-paragraphs-line-tab.html similarity index 100% rename from test/karlcow/2-paragraphs-line-tab.html rename to test/functional/cases/karlcow/2-paragraphs-line-tab.html diff --git a/test/karlcow/2-paragraphs-line-tab.md b/test/functional/cases/karlcow/2-paragraphs-line-tab.md similarity index 100% rename from test/karlcow/2-paragraphs-line-tab.md rename to test/functional/cases/karlcow/2-paragraphs-line-tab.md diff --git a/test/karlcow/2-paragraphs-line.html b/test/functional/cases/karlcow/2-paragraphs-line.html similarity index 100% rename from test/karlcow/2-paragraphs-line.html rename to test/functional/cases/karlcow/2-paragraphs-line.html diff --git a/test/karlcow/2-paragraphs-line.md b/test/functional/cases/karlcow/2-paragraphs-line.md similarity index 100% rename from test/karlcow/2-paragraphs-line.md rename to test/functional/cases/karlcow/2-paragraphs-line.md diff --git a/test/karlcow/EOL-CR+LF.html b/test/functional/cases/karlcow/EOL-CR+LF.html similarity index 100% rename from test/karlcow/EOL-CR+LF.html rename to test/functional/cases/karlcow/EOL-CR+LF.html diff --git a/test/karlcow/EOL-CR+LF.md b/test/functional/cases/karlcow/EOL-CR+LF.md similarity index 100% rename from test/karlcow/EOL-CR+LF.md rename to test/functional/cases/karlcow/EOL-CR+LF.md diff --git a/test/karlcow/EOL-CR.html b/test/functional/cases/karlcow/EOL-CR.html similarity index 100% rename from test/karlcow/EOL-CR.html rename to test/functional/cases/karlcow/EOL-CR.html diff --git a/test/karlcow/EOL-CR.md b/test/functional/cases/karlcow/EOL-CR.md similarity index 100% rename from test/karlcow/EOL-CR.md rename to test/functional/cases/karlcow/EOL-CR.md diff --git a/test/karlcow/EOL-LF.html b/test/functional/cases/karlcow/EOL-LF.html similarity index 100% rename from test/karlcow/EOL-LF.html rename to test/functional/cases/karlcow/EOL-LF.html diff --git a/test/karlcow/EOL-LF.md b/test/functional/cases/karlcow/EOL-LF.md similarity index 100% rename from test/karlcow/EOL-LF.md rename to test/functional/cases/karlcow/EOL-LF.md diff --git a/test/karlcow/ampersand-text-flow.html b/test/functional/cases/karlcow/ampersand-text-flow.html similarity index 100% rename from test/karlcow/ampersand-text-flow.html rename to test/functional/cases/karlcow/ampersand-text-flow.html diff --git a/test/karlcow/ampersand-text-flow.md b/test/functional/cases/karlcow/ampersand-text-flow.md similarity index 100% rename from test/karlcow/ampersand-text-flow.md rename to test/functional/cases/karlcow/ampersand-text-flow.md diff --git a/test/karlcow/ampersand-uri.html b/test/functional/cases/karlcow/ampersand-uri.html similarity index 100% rename from test/karlcow/ampersand-uri.html rename to test/functional/cases/karlcow/ampersand-uri.html diff --git a/test/karlcow/ampersand-uri.md b/test/functional/cases/karlcow/ampersand-uri.md similarity index 100% rename from test/karlcow/ampersand-uri.md rename to test/functional/cases/karlcow/ampersand-uri.md diff --git a/test/karlcow/asterisk-near-text.html b/test/functional/cases/karlcow/asterisk-near-text.html similarity index 100% rename from test/karlcow/asterisk-near-text.html rename to test/functional/cases/karlcow/asterisk-near-text.html diff --git a/test/karlcow/asterisk-near-text.md b/test/functional/cases/karlcow/asterisk-near-text.md similarity index 100% rename from test/karlcow/asterisk-near-text.md rename to test/functional/cases/karlcow/asterisk-near-text.md diff --git a/test/karlcow/asterisk.html b/test/functional/cases/karlcow/asterisk.html similarity index 100% rename from test/karlcow/asterisk.html rename to test/functional/cases/karlcow/asterisk.html diff --git a/test/karlcow/asterisk.md b/test/functional/cases/karlcow/asterisk.md similarity index 100% rename from test/karlcow/asterisk.md rename to test/functional/cases/karlcow/asterisk.md diff --git a/test/karlcow/backslash-escape.html b/test/functional/cases/karlcow/backslash-escape.html similarity index 100% rename from test/karlcow/backslash-escape.html rename to test/functional/cases/karlcow/backslash-escape.html diff --git a/test/karlcow/backslash-escape.md b/test/functional/cases/karlcow/backslash-escape.md similarity index 100% rename from test/karlcow/backslash-escape.md rename to test/functional/cases/karlcow/backslash-escape.md diff --git a/test/karlcow/blockquote-added-markup.html b/test/functional/cases/karlcow/blockquote-added-markup.html similarity index 100% rename from test/karlcow/blockquote-added-markup.html rename to test/functional/cases/karlcow/blockquote-added-markup.html diff --git a/test/karlcow/blockquote-added-markup.md b/test/functional/cases/karlcow/blockquote-added-markup.md similarity index 100% rename from test/karlcow/blockquote-added-markup.md rename to test/functional/cases/karlcow/blockquote-added-markup.md diff --git a/test/karlcow/blockquote-line-2-paragraphs.html b/test/functional/cases/karlcow/blockquote-line-2-paragraphs.html similarity index 100% rename from test/karlcow/blockquote-line-2-paragraphs.html rename to test/functional/cases/karlcow/blockquote-line-2-paragraphs.html diff --git a/test/karlcow/blockquote-line-2-paragraphs.md b/test/functional/cases/karlcow/blockquote-line-2-paragraphs.md similarity index 100% rename from test/karlcow/blockquote-line-2-paragraphs.md rename to test/functional/cases/karlcow/blockquote-line-2-paragraphs.md diff --git a/test/karlcow/blockquote-line.html b/test/functional/cases/karlcow/blockquote-line.html similarity index 100% rename from test/karlcow/blockquote-line.html rename to test/functional/cases/karlcow/blockquote-line.html diff --git a/test/karlcow/blockquote-line.md b/test/functional/cases/karlcow/blockquote-line.md similarity index 100% rename from test/karlcow/blockquote-line.md rename to test/functional/cases/karlcow/blockquote-line.md diff --git a/test/karlcow/blockquote-multiline-1-space-begin.html b/test/functional/cases/karlcow/blockquote-multiline-1-space-begin.html similarity index 100% rename from test/karlcow/blockquote-multiline-1-space-begin.html rename to test/functional/cases/karlcow/blockquote-multiline-1-space-begin.html diff --git a/test/karlcow/blockquote-multiline-1-space-begin.md b/test/functional/cases/karlcow/blockquote-multiline-1-space-begin.md similarity index 100% rename from test/karlcow/blockquote-multiline-1-space-begin.md rename to test/functional/cases/karlcow/blockquote-multiline-1-space-begin.md diff --git a/test/karlcow/blockquote-multiline-1-space-end.html b/test/functional/cases/karlcow/blockquote-multiline-1-space-end.html similarity index 100% rename from test/karlcow/blockquote-multiline-1-space-end.html rename to test/functional/cases/karlcow/blockquote-multiline-1-space-end.html diff --git a/test/karlcow/blockquote-multiline-1-space-end.md b/test/functional/cases/karlcow/blockquote-multiline-1-space-end.md similarity index 100% rename from test/karlcow/blockquote-multiline-1-space-end.md rename to test/functional/cases/karlcow/blockquote-multiline-1-space-end.md diff --git a/test/karlcow/blockquote-multiline-2-paragraphs.html b/test/functional/cases/karlcow/blockquote-multiline-2-paragraphs.html similarity index 100% rename from test/karlcow/blockquote-multiline-2-paragraphs.html rename to test/functional/cases/karlcow/blockquote-multiline-2-paragraphs.html diff --git a/test/karlcow/blockquote-multiline-2-paragraphs.md b/test/functional/cases/karlcow/blockquote-multiline-2-paragraphs.md similarity index 100% rename from test/karlcow/blockquote-multiline-2-paragraphs.md rename to test/functional/cases/karlcow/blockquote-multiline-2-paragraphs.md diff --git a/test/karlcow/blockquote-multiline.html b/test/functional/cases/karlcow/blockquote-multiline.html similarity index 100% rename from test/karlcow/blockquote-multiline.html rename to test/functional/cases/karlcow/blockquote-multiline.html diff --git a/test/karlcow/blockquote-multiline.md b/test/functional/cases/karlcow/blockquote-multiline.md similarity index 100% rename from test/karlcow/blockquote-multiline.md rename to test/functional/cases/karlcow/blockquote-multiline.md diff --git a/test/karlcow/blockquote-nested-multiplereturn-level1.html b/test/functional/cases/karlcow/blockquote-nested-multiplereturn-level1.html similarity index 100% rename from test/karlcow/blockquote-nested-multiplereturn-level1.html rename to test/functional/cases/karlcow/blockquote-nested-multiplereturn-level1.html diff --git a/test/karlcow/blockquote-nested-multiplereturn-level1.md b/test/functional/cases/karlcow/blockquote-nested-multiplereturn-level1.md similarity index 100% rename from test/karlcow/blockquote-nested-multiplereturn-level1.md rename to test/functional/cases/karlcow/blockquote-nested-multiplereturn-level1.md diff --git a/test/karlcow/blockquote-nested-multiplereturn.html b/test/functional/cases/karlcow/blockquote-nested-multiplereturn.html similarity index 100% rename from test/karlcow/blockquote-nested-multiplereturn.html rename to test/functional/cases/karlcow/blockquote-nested-multiplereturn.html diff --git a/test/karlcow/blockquote-nested-multiplereturn.md b/test/functional/cases/karlcow/blockquote-nested-multiplereturn.md similarity index 100% rename from test/karlcow/blockquote-nested-multiplereturn.md rename to test/functional/cases/karlcow/blockquote-nested-multiplereturn.md diff --git a/test/karlcow/blockquote-nested-return-level1.html b/test/functional/cases/karlcow/blockquote-nested-return-level1.html similarity index 100% rename from test/karlcow/blockquote-nested-return-level1.html rename to test/functional/cases/karlcow/blockquote-nested-return-level1.html diff --git a/test/karlcow/blockquote-nested-return-level1.md b/test/functional/cases/karlcow/blockquote-nested-return-level1.md similarity index 100% rename from test/karlcow/blockquote-nested-return-level1.md rename to test/functional/cases/karlcow/blockquote-nested-return-level1.md diff --git a/test/karlcow/blockquote-nested.html b/test/functional/cases/karlcow/blockquote-nested.html similarity index 100% rename from test/karlcow/blockquote-nested.html rename to test/functional/cases/karlcow/blockquote-nested.html diff --git a/test/karlcow/blockquote-nested.md b/test/functional/cases/karlcow/blockquote-nested.md similarity index 100% rename from test/karlcow/blockquote-nested.md rename to test/functional/cases/karlcow/blockquote-nested.md diff --git a/test/karlcow/code-1-tab.html b/test/functional/cases/karlcow/code-1-tab.html similarity index 100% rename from test/karlcow/code-1-tab.html rename to test/functional/cases/karlcow/code-1-tab.html diff --git a/test/karlcow/code-1-tab.md b/test/functional/cases/karlcow/code-1-tab.md similarity index 100% rename from test/karlcow/code-1-tab.md rename to test/functional/cases/karlcow/code-1-tab.md diff --git a/test/karlcow/code-4-spaces-escaping.html b/test/functional/cases/karlcow/code-4-spaces-escaping.html similarity index 100% rename from test/karlcow/code-4-spaces-escaping.html rename to test/functional/cases/karlcow/code-4-spaces-escaping.html diff --git a/test/karlcow/code-4-spaces-escaping.md b/test/functional/cases/karlcow/code-4-spaces-escaping.md similarity index 100% rename from test/karlcow/code-4-spaces-escaping.md rename to test/functional/cases/karlcow/code-4-spaces-escaping.md diff --git a/test/karlcow/code-4-spaces.html b/test/functional/cases/karlcow/code-4-spaces.html similarity index 100% rename from test/karlcow/code-4-spaces.html rename to test/functional/cases/karlcow/code-4-spaces.html diff --git a/test/karlcow/code-4-spaces.md b/test/functional/cases/karlcow/code-4-spaces.md similarity index 100% rename from test/karlcow/code-4-spaces.md rename to test/functional/cases/karlcow/code-4-spaces.md diff --git a/test/karlcow/em-middle-word.html b/test/functional/cases/karlcow/em-middle-word.html similarity index 100% rename from test/karlcow/em-middle-word.html rename to test/functional/cases/karlcow/em-middle-word.html diff --git a/test/karlcow/em-middle-word.md b/test/functional/cases/karlcow/em-middle-word.md similarity index 100% rename from test/karlcow/em-middle-word.md rename to test/functional/cases/karlcow/em-middle-word.md diff --git a/test/karlcow/em-star.html b/test/functional/cases/karlcow/em-star.html similarity index 100% rename from test/karlcow/em-star.html rename to test/functional/cases/karlcow/em-star.html diff --git a/test/karlcow/em-star.md b/test/functional/cases/karlcow/em-star.md similarity index 100% rename from test/karlcow/em-star.md rename to test/functional/cases/karlcow/em-star.md diff --git a/test/karlcow/em-underscore.html b/test/functional/cases/karlcow/em-underscore.html similarity index 100% rename from test/karlcow/em-underscore.html rename to test/functional/cases/karlcow/em-underscore.html diff --git a/test/karlcow/em-underscore.md b/test/functional/cases/karlcow/em-underscore.md similarity index 100% rename from test/karlcow/em-underscore.md rename to test/functional/cases/karlcow/em-underscore.md diff --git a/test/karlcow/entities-text-flow.html b/test/functional/cases/karlcow/entities-text-flow.html similarity index 100% rename from test/karlcow/entities-text-flow.html rename to test/functional/cases/karlcow/entities-text-flow.html diff --git a/test/karlcow/entities-text-flow.md b/test/functional/cases/karlcow/entities-text-flow.md similarity index 100% rename from test/karlcow/entities-text-flow.md rename to test/functional/cases/karlcow/entities-text-flow.md diff --git a/test/karlcow/header-level1-equal-underlined.html b/test/functional/cases/karlcow/header-level1-equal-underlined.html similarity index 100% rename from test/karlcow/header-level1-equal-underlined.html rename to test/functional/cases/karlcow/header-level1-equal-underlined.html diff --git a/test/karlcow/header-level1-equal-underlined.md b/test/functional/cases/karlcow/header-level1-equal-underlined.md similarity index 100% rename from test/karlcow/header-level1-equal-underlined.md rename to test/functional/cases/karlcow/header-level1-equal-underlined.md diff --git a/test/karlcow/header-level1-hash-sign-closed.html b/test/functional/cases/karlcow/header-level1-hash-sign-closed.html similarity index 100% rename from test/karlcow/header-level1-hash-sign-closed.html rename to test/functional/cases/karlcow/header-level1-hash-sign-closed.html diff --git a/test/karlcow/header-level1-hash-sign-closed.md b/test/functional/cases/karlcow/header-level1-hash-sign-closed.md similarity index 100% rename from test/karlcow/header-level1-hash-sign-closed.md rename to test/functional/cases/karlcow/header-level1-hash-sign-closed.md diff --git a/test/karlcow/header-level1-hash-sign-trailing-1-space.html b/test/functional/cases/karlcow/header-level1-hash-sign-trailing-1-space.html similarity index 100% rename from test/karlcow/header-level1-hash-sign-trailing-1-space.html rename to test/functional/cases/karlcow/header-level1-hash-sign-trailing-1-space.html diff --git a/test/karlcow/header-level1-hash-sign-trailing-1-space.md b/test/functional/cases/karlcow/header-level1-hash-sign-trailing-1-space.md similarity index 100% rename from test/karlcow/header-level1-hash-sign-trailing-1-space.md rename to test/functional/cases/karlcow/header-level1-hash-sign-trailing-1-space.md diff --git a/test/karlcow/header-level1-hash-sign-trailing-2-spaces.html b/test/functional/cases/karlcow/header-level1-hash-sign-trailing-2-spaces.html similarity index 100% rename from test/karlcow/header-level1-hash-sign-trailing-2-spaces.html rename to test/functional/cases/karlcow/header-level1-hash-sign-trailing-2-spaces.html diff --git a/test/karlcow/header-level1-hash-sign-trailing-2-spaces.md b/test/functional/cases/karlcow/header-level1-hash-sign-trailing-2-spaces.md similarity index 100% rename from test/karlcow/header-level1-hash-sign-trailing-2-spaces.md rename to test/functional/cases/karlcow/header-level1-hash-sign-trailing-2-spaces.md diff --git a/test/karlcow/header-level1-hash-sign.html b/test/functional/cases/karlcow/header-level1-hash-sign.html similarity index 100% rename from test/karlcow/header-level1-hash-sign.html rename to test/functional/cases/karlcow/header-level1-hash-sign.html diff --git a/test/karlcow/header-level1-hash-sign.md b/test/functional/cases/karlcow/header-level1-hash-sign.md similarity index 100% rename from test/karlcow/header-level1-hash-sign.md rename to test/functional/cases/karlcow/header-level1-hash-sign.md diff --git a/test/karlcow/header-level2-dash-underlined.html b/test/functional/cases/karlcow/header-level2-dash-underlined.html similarity index 100% rename from test/karlcow/header-level2-dash-underlined.html rename to test/functional/cases/karlcow/header-level2-dash-underlined.html diff --git a/test/karlcow/header-level2-dash-underlined.md b/test/functional/cases/karlcow/header-level2-dash-underlined.md similarity index 100% rename from test/karlcow/header-level2-dash-underlined.md rename to test/functional/cases/karlcow/header-level2-dash-underlined.md diff --git a/test/karlcow/header-level2-hash-sign-closed.html b/test/functional/cases/karlcow/header-level2-hash-sign-closed.html similarity index 100% rename from test/karlcow/header-level2-hash-sign-closed.html rename to test/functional/cases/karlcow/header-level2-hash-sign-closed.html diff --git a/test/karlcow/header-level2-hash-sign-closed.md b/test/functional/cases/karlcow/header-level2-hash-sign-closed.md similarity index 100% rename from test/karlcow/header-level2-hash-sign-closed.md rename to test/functional/cases/karlcow/header-level2-hash-sign-closed.md diff --git a/test/karlcow/header-level2-hash-sign.html b/test/functional/cases/karlcow/header-level2-hash-sign.html similarity index 100% rename from test/karlcow/header-level2-hash-sign.html rename to test/functional/cases/karlcow/header-level2-hash-sign.html diff --git a/test/karlcow/header-level2-hash-sign.md b/test/functional/cases/karlcow/header-level2-hash-sign.md similarity index 100% rename from test/karlcow/header-level2-hash-sign.md rename to test/functional/cases/karlcow/header-level2-hash-sign.md diff --git a/test/karlcow/header-level3-hash-sign-closed.html b/test/functional/cases/karlcow/header-level3-hash-sign-closed.html similarity index 100% rename from test/karlcow/header-level3-hash-sign-closed.html rename to test/functional/cases/karlcow/header-level3-hash-sign-closed.html diff --git a/test/karlcow/header-level3-hash-sign-closed.md b/test/functional/cases/karlcow/header-level3-hash-sign-closed.md similarity index 100% rename from test/karlcow/header-level3-hash-sign-closed.md rename to test/functional/cases/karlcow/header-level3-hash-sign-closed.md diff --git a/test/karlcow/header-level3-hash-sign.html b/test/functional/cases/karlcow/header-level3-hash-sign.html similarity index 100% rename from test/karlcow/header-level3-hash-sign.html rename to test/functional/cases/karlcow/header-level3-hash-sign.html diff --git a/test/karlcow/header-level3-hash-sign.md b/test/functional/cases/karlcow/header-level3-hash-sign.md similarity index 100% rename from test/karlcow/header-level3-hash-sign.md rename to test/functional/cases/karlcow/header-level3-hash-sign.md diff --git a/test/karlcow/header-level4-hash-sign-closed.html b/test/functional/cases/karlcow/header-level4-hash-sign-closed.html similarity index 100% rename from test/karlcow/header-level4-hash-sign-closed.html rename to test/functional/cases/karlcow/header-level4-hash-sign-closed.html diff --git a/test/karlcow/header-level4-hash-sign-closed.md b/test/functional/cases/karlcow/header-level4-hash-sign-closed.md similarity index 100% rename from test/karlcow/header-level4-hash-sign-closed.md rename to test/functional/cases/karlcow/header-level4-hash-sign-closed.md diff --git a/test/karlcow/header-level4-hash-sign.html b/test/functional/cases/karlcow/header-level4-hash-sign.html similarity index 100% rename from test/karlcow/header-level4-hash-sign.html rename to test/functional/cases/karlcow/header-level4-hash-sign.html diff --git a/test/karlcow/header-level4-hash-sign.md b/test/functional/cases/karlcow/header-level4-hash-sign.md similarity index 100% rename from test/karlcow/header-level4-hash-sign.md rename to test/functional/cases/karlcow/header-level4-hash-sign.md diff --git a/test/karlcow/header-level5-hash-sign-closed.html b/test/functional/cases/karlcow/header-level5-hash-sign-closed.html similarity index 100% rename from test/karlcow/header-level5-hash-sign-closed.html rename to test/functional/cases/karlcow/header-level5-hash-sign-closed.html diff --git a/test/karlcow/header-level5-hash-sign-closed.md b/test/functional/cases/karlcow/header-level5-hash-sign-closed.md similarity index 100% rename from test/karlcow/header-level5-hash-sign-closed.md rename to test/functional/cases/karlcow/header-level5-hash-sign-closed.md diff --git a/test/karlcow/header-level5-hash-sign.html b/test/functional/cases/karlcow/header-level5-hash-sign.html similarity index 100% rename from test/karlcow/header-level5-hash-sign.html rename to test/functional/cases/karlcow/header-level5-hash-sign.html diff --git a/test/karlcow/header-level5-hash-sign.md b/test/functional/cases/karlcow/header-level5-hash-sign.md similarity index 100% rename from test/karlcow/header-level5-hash-sign.md rename to test/functional/cases/karlcow/header-level5-hash-sign.md diff --git a/test/karlcow/header-level6-hash-sign-closed.html b/test/functional/cases/karlcow/header-level6-hash-sign-closed.html similarity index 100% rename from test/karlcow/header-level6-hash-sign-closed.html rename to test/functional/cases/karlcow/header-level6-hash-sign-closed.html diff --git a/test/karlcow/header-level6-hash-sign-closed.md b/test/functional/cases/karlcow/header-level6-hash-sign-closed.md similarity index 100% rename from test/karlcow/header-level6-hash-sign-closed.md rename to test/functional/cases/karlcow/header-level6-hash-sign-closed.md diff --git a/test/karlcow/header-level6-hash-sign.html b/test/functional/cases/karlcow/header-level6-hash-sign.html similarity index 100% rename from test/karlcow/header-level6-hash-sign.html rename to test/functional/cases/karlcow/header-level6-hash-sign.html diff --git a/test/karlcow/header-level6-hash-sign.md b/test/functional/cases/karlcow/header-level6-hash-sign.md similarity index 100% rename from test/karlcow/header-level6-hash-sign.md rename to test/functional/cases/karlcow/header-level6-hash-sign.md diff --git a/test/karlcow/horizontal-rule-3-dashes-spaces.html b/test/functional/cases/karlcow/horizontal-rule-3-dashes-spaces.html similarity index 100% rename from test/karlcow/horizontal-rule-3-dashes-spaces.html rename to test/functional/cases/karlcow/horizontal-rule-3-dashes-spaces.html diff --git a/test/karlcow/horizontal-rule-3-dashes-spaces.md b/test/functional/cases/karlcow/horizontal-rule-3-dashes-spaces.md similarity index 100% rename from test/karlcow/horizontal-rule-3-dashes-spaces.md rename to test/functional/cases/karlcow/horizontal-rule-3-dashes-spaces.md diff --git a/test/karlcow/horizontal-rule-3-dashes.html b/test/functional/cases/karlcow/horizontal-rule-3-dashes.html similarity index 100% rename from test/karlcow/horizontal-rule-3-dashes.html rename to test/functional/cases/karlcow/horizontal-rule-3-dashes.html diff --git a/test/karlcow/horizontal-rule-3-dashes.md b/test/functional/cases/karlcow/horizontal-rule-3-dashes.md similarity index 100% rename from test/karlcow/horizontal-rule-3-dashes.md rename to test/functional/cases/karlcow/horizontal-rule-3-dashes.md diff --git a/test/karlcow/horizontal-rule-3-stars.html b/test/functional/cases/karlcow/horizontal-rule-3-stars.html similarity index 100% rename from test/karlcow/horizontal-rule-3-stars.html rename to test/functional/cases/karlcow/horizontal-rule-3-stars.html diff --git a/test/karlcow/horizontal-rule-3-stars.md b/test/functional/cases/karlcow/horizontal-rule-3-stars.md similarity index 100% rename from test/karlcow/horizontal-rule-3-stars.md rename to test/functional/cases/karlcow/horizontal-rule-3-stars.md diff --git a/test/karlcow/horizontal-rule-3-underscores.html b/test/functional/cases/karlcow/horizontal-rule-3-underscores.html similarity index 100% rename from test/karlcow/horizontal-rule-3-underscores.html rename to test/functional/cases/karlcow/horizontal-rule-3-underscores.html diff --git a/test/karlcow/horizontal-rule-3-underscores.md b/test/functional/cases/karlcow/horizontal-rule-3-underscores.md similarity index 100% rename from test/karlcow/horizontal-rule-3-underscores.md rename to test/functional/cases/karlcow/horizontal-rule-3-underscores.md diff --git a/test/karlcow/horizontal-rule-7-dashes.html b/test/functional/cases/karlcow/horizontal-rule-7-dashes.html similarity index 100% rename from test/karlcow/horizontal-rule-7-dashes.html rename to test/functional/cases/karlcow/horizontal-rule-7-dashes.html diff --git a/test/karlcow/horizontal-rule-7-dashes.md b/test/functional/cases/karlcow/horizontal-rule-7-dashes.md similarity index 100% rename from test/karlcow/horizontal-rule-7-dashes.md rename to test/functional/cases/karlcow/horizontal-rule-7-dashes.md diff --git a/test/karlcow/img-idref-title.html b/test/functional/cases/karlcow/img-idref-title.html similarity index 100% rename from test/karlcow/img-idref-title.html rename to test/functional/cases/karlcow/img-idref-title.html diff --git a/test/karlcow/img-idref-title.md b/test/functional/cases/karlcow/img-idref-title.md similarity index 100% rename from test/karlcow/img-idref-title.md rename to test/functional/cases/karlcow/img-idref-title.md diff --git a/test/karlcow/img-idref.html b/test/functional/cases/karlcow/img-idref.html similarity index 100% rename from test/karlcow/img-idref.html rename to test/functional/cases/karlcow/img-idref.html diff --git a/test/karlcow/img-idref.md b/test/functional/cases/karlcow/img-idref.md similarity index 100% rename from test/karlcow/img-idref.md rename to test/functional/cases/karlcow/img-idref.md diff --git a/test/karlcow/img-title.html b/test/functional/cases/karlcow/img-title.html similarity index 100% rename from test/karlcow/img-title.html rename to test/functional/cases/karlcow/img-title.html diff --git a/test/karlcow/img-title.md b/test/functional/cases/karlcow/img-title.md similarity index 100% rename from test/karlcow/img-title.md rename to test/functional/cases/karlcow/img-title.md diff --git a/test/karlcow/img.html b/test/functional/cases/karlcow/img.html similarity index 100% rename from test/karlcow/img.html rename to test/functional/cases/karlcow/img.html diff --git a/test/karlcow/img.md b/test/functional/cases/karlcow/img.md similarity index 100% rename from test/karlcow/img.md rename to test/functional/cases/karlcow/img.md diff --git a/test/karlcow/inline-code-escaping-entities.html b/test/functional/cases/karlcow/inline-code-escaping-entities.html similarity index 100% rename from test/karlcow/inline-code-escaping-entities.html rename to test/functional/cases/karlcow/inline-code-escaping-entities.html diff --git a/test/karlcow/inline-code-escaping-entities.md b/test/functional/cases/karlcow/inline-code-escaping-entities.md similarity index 100% rename from test/karlcow/inline-code-escaping-entities.md rename to test/functional/cases/karlcow/inline-code-escaping-entities.md diff --git a/test/karlcow/inline-code-with-visible-backtick.html b/test/functional/cases/karlcow/inline-code-with-visible-backtick.html similarity index 100% rename from test/karlcow/inline-code-with-visible-backtick.html rename to test/functional/cases/karlcow/inline-code-with-visible-backtick.html diff --git a/test/karlcow/inline-code-with-visible-backtick.md b/test/functional/cases/karlcow/inline-code-with-visible-backtick.md similarity index 100% rename from test/karlcow/inline-code-with-visible-backtick.md rename to test/functional/cases/karlcow/inline-code-with-visible-backtick.md diff --git a/test/karlcow/inline-code.html b/test/functional/cases/karlcow/inline-code.html similarity index 100% rename from test/karlcow/inline-code.html rename to test/functional/cases/karlcow/inline-code.html diff --git a/test/karlcow/inline-code.md b/test/functional/cases/karlcow/inline-code.md similarity index 100% rename from test/karlcow/inline-code.md rename to test/functional/cases/karlcow/inline-code.md diff --git a/test/karlcow/line-break-2-spaces.html b/test/functional/cases/karlcow/line-break-2-spaces.html similarity index 100% rename from test/karlcow/line-break-2-spaces.html rename to test/functional/cases/karlcow/line-break-2-spaces.html diff --git a/test/karlcow/line-break-2-spaces.md b/test/functional/cases/karlcow/line-break-2-spaces.md similarity index 100% rename from test/karlcow/line-break-2-spaces.md rename to test/functional/cases/karlcow/line-break-2-spaces.md diff --git a/test/karlcow/line-break-5-spaces.html b/test/functional/cases/karlcow/line-break-5-spaces.html similarity index 100% rename from test/karlcow/line-break-5-spaces.html rename to test/functional/cases/karlcow/line-break-5-spaces.html diff --git a/test/karlcow/line-break-5-spaces.md b/test/functional/cases/karlcow/line-break-5-spaces.md similarity index 100% rename from test/karlcow/line-break-5-spaces.md rename to test/functional/cases/karlcow/line-break-5-spaces.md diff --git a/test/karlcow/link-automatic.html b/test/functional/cases/karlcow/link-automatic.html similarity index 100% rename from test/karlcow/link-automatic.html rename to test/functional/cases/karlcow/link-automatic.html diff --git a/test/karlcow/link-automatic.md b/test/functional/cases/karlcow/link-automatic.md similarity index 100% rename from test/karlcow/link-automatic.md rename to test/functional/cases/karlcow/link-automatic.md diff --git a/test/karlcow/link-bracket-paranthesis-title.html b/test/functional/cases/karlcow/link-bracket-paranthesis-title.html similarity index 100% rename from test/karlcow/link-bracket-paranthesis-title.html rename to test/functional/cases/karlcow/link-bracket-paranthesis-title.html diff --git a/test/karlcow/link-bracket-paranthesis-title.md b/test/functional/cases/karlcow/link-bracket-paranthesis-title.md similarity index 100% rename from test/karlcow/link-bracket-paranthesis-title.md rename to test/functional/cases/karlcow/link-bracket-paranthesis-title.md diff --git a/test/karlcow/link-bracket-paranthesis.html b/test/functional/cases/karlcow/link-bracket-paranthesis.html similarity index 100% rename from test/karlcow/link-bracket-paranthesis.html rename to test/functional/cases/karlcow/link-bracket-paranthesis.html diff --git a/test/karlcow/link-bracket-paranthesis.md b/test/functional/cases/karlcow/link-bracket-paranthesis.md similarity index 100% rename from test/karlcow/link-bracket-paranthesis.md rename to test/functional/cases/karlcow/link-bracket-paranthesis.md diff --git a/test/karlcow/link-idref-angle-bracket.html b/test/functional/cases/karlcow/link-idref-angle-bracket.html similarity index 100% rename from test/karlcow/link-idref-angle-bracket.html rename to test/functional/cases/karlcow/link-idref-angle-bracket.html diff --git a/test/karlcow/link-idref-angle-bracket.md b/test/functional/cases/karlcow/link-idref-angle-bracket.md similarity index 100% rename from test/karlcow/link-idref-angle-bracket.md rename to test/functional/cases/karlcow/link-idref-angle-bracket.md diff --git a/test/karlcow/link-idref-implicit-spaces.html b/test/functional/cases/karlcow/link-idref-implicit-spaces.html similarity index 100% rename from test/karlcow/link-idref-implicit-spaces.html rename to test/functional/cases/karlcow/link-idref-implicit-spaces.html diff --git a/test/karlcow/link-idref-implicit-spaces.md b/test/functional/cases/karlcow/link-idref-implicit-spaces.md similarity index 100% rename from test/karlcow/link-idref-implicit-spaces.md rename to test/functional/cases/karlcow/link-idref-implicit-spaces.md diff --git a/test/karlcow/link-idref-implicit.html b/test/functional/cases/karlcow/link-idref-implicit.html similarity index 100% rename from test/karlcow/link-idref-implicit.html rename to test/functional/cases/karlcow/link-idref-implicit.html diff --git a/test/karlcow/link-idref-implicit.md b/test/functional/cases/karlcow/link-idref-implicit.md similarity index 100% rename from test/karlcow/link-idref-implicit.md rename to test/functional/cases/karlcow/link-idref-implicit.md diff --git a/test/karlcow/link-idref-space.html b/test/functional/cases/karlcow/link-idref-space.html similarity index 100% rename from test/karlcow/link-idref-space.html rename to test/functional/cases/karlcow/link-idref-space.html diff --git a/test/karlcow/link-idref-space.md b/test/functional/cases/karlcow/link-idref-space.md similarity index 100% rename from test/karlcow/link-idref-space.md rename to test/functional/cases/karlcow/link-idref-space.md diff --git a/test/karlcow/link-idref-title-next-line.html b/test/functional/cases/karlcow/link-idref-title-next-line.html similarity index 100% rename from test/karlcow/link-idref-title-next-line.html rename to test/functional/cases/karlcow/link-idref-title-next-line.html diff --git a/test/karlcow/link-idref-title-next-line.md b/test/functional/cases/karlcow/link-idref-title-next-line.md similarity index 100% rename from test/karlcow/link-idref-title-next-line.md rename to test/functional/cases/karlcow/link-idref-title-next-line.md diff --git a/test/karlcow/link-idref-title-paranthesis.html b/test/functional/cases/karlcow/link-idref-title-paranthesis.html similarity index 100% rename from test/karlcow/link-idref-title-paranthesis.html rename to test/functional/cases/karlcow/link-idref-title-paranthesis.html diff --git a/test/karlcow/link-idref-title-paranthesis.md b/test/functional/cases/karlcow/link-idref-title-paranthesis.md similarity index 100% rename from test/karlcow/link-idref-title-paranthesis.md rename to test/functional/cases/karlcow/link-idref-title-paranthesis.md diff --git a/test/karlcow/link-idref-title-single-quote.html b/test/functional/cases/karlcow/link-idref-title-single-quote.html similarity index 100% rename from test/karlcow/link-idref-title-single-quote.html rename to test/functional/cases/karlcow/link-idref-title-single-quote.html diff --git a/test/karlcow/link-idref-title-single-quote.md b/test/functional/cases/karlcow/link-idref-title-single-quote.md similarity index 100% rename from test/karlcow/link-idref-title-single-quote.md rename to test/functional/cases/karlcow/link-idref-title-single-quote.md diff --git a/test/karlcow/link-idref-title.html b/test/functional/cases/karlcow/link-idref-title.html similarity index 100% rename from test/karlcow/link-idref-title.html rename to test/functional/cases/karlcow/link-idref-title.html diff --git a/test/karlcow/link-idref-title.md b/test/functional/cases/karlcow/link-idref-title.md similarity index 100% rename from test/karlcow/link-idref-title.md rename to test/functional/cases/karlcow/link-idref-title.md diff --git a/test/karlcow/link-idref.html b/test/functional/cases/karlcow/link-idref.html similarity index 100% rename from test/karlcow/link-idref.html rename to test/functional/cases/karlcow/link-idref.html diff --git a/test/karlcow/link-idref.md b/test/functional/cases/karlcow/link-idref.md similarity index 100% rename from test/karlcow/link-idref.md rename to test/functional/cases/karlcow/link-idref.md diff --git a/test/karlcow/list-blockquote.html b/test/functional/cases/karlcow/list-blockquote.html similarity index 100% rename from test/karlcow/list-blockquote.html rename to test/functional/cases/karlcow/list-blockquote.html diff --git a/test/karlcow/list-blockquote.md b/test/functional/cases/karlcow/list-blockquote.md similarity index 100% rename from test/karlcow/list-blockquote.md rename to test/functional/cases/karlcow/list-blockquote.md diff --git a/test/karlcow/list-code.html b/test/functional/cases/karlcow/list-code.html similarity index 100% rename from test/karlcow/list-code.html rename to test/functional/cases/karlcow/list-code.html diff --git a/test/karlcow/list-code.md b/test/functional/cases/karlcow/list-code.md similarity index 100% rename from test/karlcow/list-code.md rename to test/functional/cases/karlcow/list-code.md diff --git a/test/karlcow/list-multiparagraphs-tab.html b/test/functional/cases/karlcow/list-multiparagraphs-tab.html similarity index 100% rename from test/karlcow/list-multiparagraphs-tab.html rename to test/functional/cases/karlcow/list-multiparagraphs-tab.html diff --git a/test/karlcow/list-multiparagraphs-tab.md b/test/functional/cases/karlcow/list-multiparagraphs-tab.md similarity index 100% rename from test/karlcow/list-multiparagraphs-tab.md rename to test/functional/cases/karlcow/list-multiparagraphs-tab.md diff --git a/test/karlcow/list-multiparagraphs.html b/test/functional/cases/karlcow/list-multiparagraphs.html similarity index 100% rename from test/karlcow/list-multiparagraphs.html rename to test/functional/cases/karlcow/list-multiparagraphs.html diff --git a/test/karlcow/list-multiparagraphs.md b/test/functional/cases/karlcow/list-multiparagraphs.md similarity index 100% rename from test/karlcow/list-multiparagraphs.md rename to test/functional/cases/karlcow/list-multiparagraphs.md diff --git a/test/karlcow/ordered-list-escaped.html b/test/functional/cases/karlcow/ordered-list-escaped.html similarity index 100% rename from test/karlcow/ordered-list-escaped.html rename to test/functional/cases/karlcow/ordered-list-escaped.html diff --git a/test/karlcow/ordered-list-escaped.md b/test/functional/cases/karlcow/ordered-list-escaped.md similarity index 100% rename from test/karlcow/ordered-list-escaped.md rename to test/functional/cases/karlcow/ordered-list-escaped.md diff --git a/test/karlcow/ordered-list-inner-par-list.html b/test/functional/cases/karlcow/ordered-list-inner-par-list.html similarity index 100% rename from test/karlcow/ordered-list-inner-par-list.html rename to test/functional/cases/karlcow/ordered-list-inner-par-list.html diff --git a/test/karlcow/ordered-list-inner-par-list.md b/test/functional/cases/karlcow/ordered-list-inner-par-list.md similarity index 100% rename from test/karlcow/ordered-list-inner-par-list.md rename to test/functional/cases/karlcow/ordered-list-inner-par-list.md diff --git a/test/karlcow/ordered-list-items-random-number.html b/test/functional/cases/karlcow/ordered-list-items-random-number.html similarity index 100% rename from test/karlcow/ordered-list-items-random-number.html rename to test/functional/cases/karlcow/ordered-list-items-random-number.html diff --git a/test/karlcow/ordered-list-items-random-number.md b/test/functional/cases/karlcow/ordered-list-items-random-number.md similarity index 100% rename from test/karlcow/ordered-list-items-random-number.md rename to test/functional/cases/karlcow/ordered-list-items-random-number.md diff --git a/test/karlcow/ordered-list-items.html b/test/functional/cases/karlcow/ordered-list-items.html similarity index 100% rename from test/karlcow/ordered-list-items.html rename to test/functional/cases/karlcow/ordered-list-items.html diff --git a/test/karlcow/ordered-list-items.md b/test/functional/cases/karlcow/ordered-list-items.md similarity index 100% rename from test/karlcow/ordered-list-items.md rename to test/functional/cases/karlcow/ordered-list-items.md diff --git a/test/karlcow/paragraph-hard-return.html b/test/functional/cases/karlcow/paragraph-hard-return.html similarity index 100% rename from test/karlcow/paragraph-hard-return.html rename to test/functional/cases/karlcow/paragraph-hard-return.html diff --git a/test/karlcow/paragraph-hard-return.md b/test/functional/cases/karlcow/paragraph-hard-return.md similarity index 100% rename from test/karlcow/paragraph-hard-return.md rename to test/functional/cases/karlcow/paragraph-hard-return.md diff --git a/test/karlcow/paragraph-line.html b/test/functional/cases/karlcow/paragraph-line.html similarity index 100% rename from test/karlcow/paragraph-line.html rename to test/functional/cases/karlcow/paragraph-line.html diff --git a/test/karlcow/paragraph-line.md b/test/functional/cases/karlcow/paragraph-line.md similarity index 100% rename from test/karlcow/paragraph-line.md rename to test/functional/cases/karlcow/paragraph-line.md diff --git a/test/karlcow/paragraph-trailing-leading-spaces.html b/test/functional/cases/karlcow/paragraph-trailing-leading-spaces.html similarity index 100% rename from test/karlcow/paragraph-trailing-leading-spaces.html rename to test/functional/cases/karlcow/paragraph-trailing-leading-spaces.html diff --git a/test/karlcow/paragraph-trailing-leading-spaces.md b/test/functional/cases/karlcow/paragraph-trailing-leading-spaces.md similarity index 100% rename from test/karlcow/paragraph-trailing-leading-spaces.md rename to test/functional/cases/karlcow/paragraph-trailing-leading-spaces.md diff --git a/test/karlcow/paragraph-trailing-tab.html b/test/functional/cases/karlcow/paragraph-trailing-tab.html similarity index 100% rename from test/karlcow/paragraph-trailing-tab.html rename to test/functional/cases/karlcow/paragraph-trailing-tab.html diff --git a/test/karlcow/paragraph-trailing-tab.md b/test/functional/cases/karlcow/paragraph-trailing-tab.md similarity index 100% rename from test/karlcow/paragraph-trailing-tab.md rename to test/functional/cases/karlcow/paragraph-trailing-tab.md diff --git a/test/karlcow/paragraphs-2-leading-spaces.html b/test/functional/cases/karlcow/paragraphs-2-leading-spaces.html similarity index 100% rename from test/karlcow/paragraphs-2-leading-spaces.html rename to test/functional/cases/karlcow/paragraphs-2-leading-spaces.html diff --git a/test/karlcow/paragraphs-2-leading-spaces.md b/test/functional/cases/karlcow/paragraphs-2-leading-spaces.md similarity index 100% rename from test/karlcow/paragraphs-2-leading-spaces.md rename to test/functional/cases/karlcow/paragraphs-2-leading-spaces.md diff --git a/test/karlcow/paragraphs-3-leading-spaces.html b/test/functional/cases/karlcow/paragraphs-3-leading-spaces.html similarity index 100% rename from test/karlcow/paragraphs-3-leading-spaces.html rename to test/functional/cases/karlcow/paragraphs-3-leading-spaces.html diff --git a/test/karlcow/paragraphs-3-leading-spaces.md b/test/functional/cases/karlcow/paragraphs-3-leading-spaces.md similarity index 100% rename from test/karlcow/paragraphs-3-leading-spaces.md rename to test/functional/cases/karlcow/paragraphs-3-leading-spaces.md diff --git a/test/karlcow/paragraphs-leading-space.html b/test/functional/cases/karlcow/paragraphs-leading-space.html similarity index 100% rename from test/karlcow/paragraphs-leading-space.html rename to test/functional/cases/karlcow/paragraphs-leading-space.html diff --git a/test/karlcow/paragraphs-leading-space.md b/test/functional/cases/karlcow/paragraphs-leading-space.md similarity index 100% rename from test/karlcow/paragraphs-leading-space.md rename to test/functional/cases/karlcow/paragraphs-leading-space.md diff --git a/test/karlcow/paragraphs-trailing-spaces.html b/test/functional/cases/karlcow/paragraphs-trailing-spaces.html similarity index 100% rename from test/karlcow/paragraphs-trailing-spaces.html rename to test/functional/cases/karlcow/paragraphs-trailing-spaces.html diff --git a/test/karlcow/paragraphs-trailing-spaces.md b/test/functional/cases/karlcow/paragraphs-trailing-spaces.md similarity index 100% rename from test/karlcow/paragraphs-trailing-spaces.md rename to test/functional/cases/karlcow/paragraphs-trailing-spaces.md diff --git a/test/karlcow/strong-middle-word.html b/test/functional/cases/karlcow/strong-middle-word.html similarity index 100% rename from test/karlcow/strong-middle-word.html rename to test/functional/cases/karlcow/strong-middle-word.html diff --git a/test/karlcow/strong-middle-word.md b/test/functional/cases/karlcow/strong-middle-word.md similarity index 100% rename from test/karlcow/strong-middle-word.md rename to test/functional/cases/karlcow/strong-middle-word.md diff --git a/test/karlcow/strong-star.html b/test/functional/cases/karlcow/strong-star.html similarity index 100% rename from test/karlcow/strong-star.html rename to test/functional/cases/karlcow/strong-star.html diff --git a/test/karlcow/strong-star.md b/test/functional/cases/karlcow/strong-star.md similarity index 100% rename from test/karlcow/strong-star.md rename to test/functional/cases/karlcow/strong-star.md diff --git a/test/karlcow/strong-underscore.html b/test/functional/cases/karlcow/strong-underscore.html similarity index 100% rename from test/karlcow/strong-underscore.html rename to test/functional/cases/karlcow/strong-underscore.html diff --git a/test/karlcow/strong-underscore.md b/test/functional/cases/karlcow/strong-underscore.md similarity index 100% rename from test/karlcow/strong-underscore.md rename to test/functional/cases/karlcow/strong-underscore.md diff --git a/test/karlcow/unordered-list-items-asterisk.html b/test/functional/cases/karlcow/unordered-list-items-asterisk.html similarity index 100% rename from test/karlcow/unordered-list-items-asterisk.html rename to test/functional/cases/karlcow/unordered-list-items-asterisk.html diff --git a/test/karlcow/unordered-list-items-asterisk.md b/test/functional/cases/karlcow/unordered-list-items-asterisk.md similarity index 100% rename from test/karlcow/unordered-list-items-asterisk.md rename to test/functional/cases/karlcow/unordered-list-items-asterisk.md diff --git a/test/karlcow/unordered-list-items-dashsign.html b/test/functional/cases/karlcow/unordered-list-items-dashsign.html similarity index 100% rename from test/karlcow/unordered-list-items-dashsign.html rename to test/functional/cases/karlcow/unordered-list-items-dashsign.html diff --git a/test/karlcow/unordered-list-items-dashsign.md b/test/functional/cases/karlcow/unordered-list-items-dashsign.md similarity index 100% rename from test/karlcow/unordered-list-items-dashsign.md rename to test/functional/cases/karlcow/unordered-list-items-dashsign.md diff --git a/test/karlcow/unordered-list-items-leading-1space.html b/test/functional/cases/karlcow/unordered-list-items-leading-1space.html similarity index 100% rename from test/karlcow/unordered-list-items-leading-1space.html rename to test/functional/cases/karlcow/unordered-list-items-leading-1space.html diff --git a/test/karlcow/unordered-list-items-leading-1space.md b/test/functional/cases/karlcow/unordered-list-items-leading-1space.md similarity index 100% rename from test/karlcow/unordered-list-items-leading-1space.md rename to test/functional/cases/karlcow/unordered-list-items-leading-1space.md diff --git a/test/karlcow/unordered-list-items-leading-2spaces.html b/test/functional/cases/karlcow/unordered-list-items-leading-2spaces.html similarity index 100% rename from test/karlcow/unordered-list-items-leading-2spaces.html rename to test/functional/cases/karlcow/unordered-list-items-leading-2spaces.html diff --git a/test/karlcow/unordered-list-items-leading-2spaces.md b/test/functional/cases/karlcow/unordered-list-items-leading-2spaces.md similarity index 100% rename from test/karlcow/unordered-list-items-leading-2spaces.md rename to test/functional/cases/karlcow/unordered-list-items-leading-2spaces.md diff --git a/test/karlcow/unordered-list-items-leading-3spaces.html b/test/functional/cases/karlcow/unordered-list-items-leading-3spaces.html similarity index 100% rename from test/karlcow/unordered-list-items-leading-3spaces.html rename to test/functional/cases/karlcow/unordered-list-items-leading-3spaces.html diff --git a/test/karlcow/unordered-list-items-leading-3spaces.md b/test/functional/cases/karlcow/unordered-list-items-leading-3spaces.md similarity index 100% rename from test/karlcow/unordered-list-items-leading-3spaces.md rename to test/functional/cases/karlcow/unordered-list-items-leading-3spaces.md diff --git a/test/karlcow/unordered-list-items-plussign.html b/test/functional/cases/karlcow/unordered-list-items-plussign.html similarity index 100% rename from test/karlcow/unordered-list-items-plussign.html rename to test/functional/cases/karlcow/unordered-list-items-plussign.html diff --git a/test/karlcow/unordered-list-items-plussign.md b/test/functional/cases/karlcow/unordered-list-items-plussign.md similarity index 100% rename from test/karlcow/unordered-list-items-plussign.md rename to test/functional/cases/karlcow/unordered-list-items-plussign.md diff --git a/test/karlcow/unordered-list-paragraphs.html b/test/functional/cases/karlcow/unordered-list-paragraphs.html similarity index 100% rename from test/karlcow/unordered-list-paragraphs.html rename to test/functional/cases/karlcow/unordered-list-paragraphs.html diff --git a/test/karlcow/unordered-list-paragraphs.md b/test/functional/cases/karlcow/unordered-list-paragraphs.md similarity index 100% rename from test/karlcow/unordered-list-paragraphs.md rename to test/functional/cases/karlcow/unordered-list-paragraphs.md diff --git a/test/karlcow/unordered-list-unindented-content.html b/test/functional/cases/karlcow/unordered-list-unindented-content.html similarity index 100% rename from test/karlcow/unordered-list-unindented-content.html rename to test/functional/cases/karlcow/unordered-list-unindented-content.html diff --git a/test/karlcow/unordered-list-unindented-content.md b/test/functional/cases/karlcow/unordered-list-unindented-content.md similarity index 100% rename from test/karlcow/unordered-list-unindented-content.md rename to test/functional/cases/karlcow/unordered-list-unindented-content.md diff --git a/test/karlcow/unordered-list-with-indented-content.html b/test/functional/cases/karlcow/unordered-list-with-indented-content.html similarity index 100% rename from test/karlcow/unordered-list-with-indented-content.html rename to test/functional/cases/karlcow/unordered-list-with-indented-content.html diff --git a/test/karlcow/unordered-list-with-indented-content.md b/test/functional/cases/karlcow/unordered-list-with-indented-content.md similarity index 100% rename from test/karlcow/unordered-list-with-indented-content.md rename to test/functional/cases/karlcow/unordered-list-with-indented-content.md diff --git a/test/cases/anchors-by-reference.html b/test/functional/cases/standard/anchors-by-reference.html similarity index 100% rename from test/cases/anchors-by-reference.html rename to test/functional/cases/standard/anchors-by-reference.html diff --git a/test/cases/anchors-by-reference.md b/test/functional/cases/standard/anchors-by-reference.md similarity index 100% rename from test/cases/anchors-by-reference.md rename to test/functional/cases/standard/anchors-by-reference.md diff --git a/test/cases/anchors-followed-by-brakets.html b/test/functional/cases/standard/anchors-followed-by-brakets.html similarity index 100% rename from test/cases/anchors-followed-by-brakets.html rename to test/functional/cases/standard/anchors-followed-by-brakets.html diff --git a/test/cases/anchors-followed-by-brakets.md b/test/functional/cases/standard/anchors-followed-by-brakets.md similarity index 100% rename from test/cases/anchors-followed-by-brakets.md rename to test/functional/cases/standard/anchors-followed-by-brakets.md diff --git a/test/cases/automatic-anchors.html b/test/functional/cases/standard/automatic-anchors.html similarity index 100% rename from test/cases/automatic-anchors.html rename to test/functional/cases/standard/automatic-anchors.html diff --git a/test/cases/automatic-anchors.md b/test/functional/cases/standard/automatic-anchors.md similarity index 100% rename from test/cases/automatic-anchors.md rename to test/functional/cases/standard/automatic-anchors.md diff --git a/test/cases/blockquote-followed-by-code.html b/test/functional/cases/standard/blockquote-followed-by-code.html similarity index 100% rename from test/cases/blockquote-followed-by-code.html rename to test/functional/cases/standard/blockquote-followed-by-code.html diff --git a/test/cases/blockquote-followed-by-code.md b/test/functional/cases/standard/blockquote-followed-by-code.md similarity index 100% rename from test/cases/blockquote-followed-by-code.md rename to test/functional/cases/standard/blockquote-followed-by-code.md diff --git a/test/cases/blockquote-inside-code.html b/test/functional/cases/standard/blockquote-inside-code.html similarity index 100% rename from test/cases/blockquote-inside-code.html rename to test/functional/cases/standard/blockquote-inside-code.html diff --git a/test/cases/blockquote-inside-code.md b/test/functional/cases/standard/blockquote-inside-code.md similarity index 100% rename from test/cases/blockquote-inside-code.md rename to test/functional/cases/standard/blockquote-inside-code.md diff --git a/test/cases/blockquote-nested-markdown.html b/test/functional/cases/standard/blockquote-nested-markdown.html similarity index 100% rename from test/cases/blockquote-nested-markdown.html rename to test/functional/cases/standard/blockquote-nested-markdown.html diff --git a/test/cases/blockquote-nested-markdown.md b/test/functional/cases/standard/blockquote-nested-markdown.md similarity index 100% rename from test/cases/blockquote-nested-markdown.md rename to test/functional/cases/standard/blockquote-nested-markdown.md diff --git a/test/cases/blockquote.html b/test/functional/cases/standard/blockquote.html similarity index 100% rename from test/cases/blockquote.html rename to test/functional/cases/standard/blockquote.html diff --git a/test/cases/blockquote.md b/test/functional/cases/standard/blockquote.md similarity index 100% rename from test/cases/blockquote.md rename to test/functional/cases/standard/blockquote.md diff --git a/test/cases/code-block-html-escape.html b/test/functional/cases/standard/code-block-html-escape.html similarity index 100% rename from test/cases/code-block-html-escape.html rename to test/functional/cases/standard/code-block-html-escape.html diff --git a/test/cases/code-block-html-escape.md b/test/functional/cases/standard/code-block-html-escape.md similarity index 100% rename from test/cases/code-block-html-escape.md rename to test/functional/cases/standard/code-block-html-escape.md diff --git a/test/cases/code-block-with-special-chars.html b/test/functional/cases/standard/code-block-with-special-chars.html similarity index 100% rename from test/cases/code-block-with-special-chars.html rename to test/functional/cases/standard/code-block-with-special-chars.html diff --git a/test/cases/code-block-with-special-chars.md b/test/functional/cases/standard/code-block-with-special-chars.md similarity index 100% rename from test/cases/code-block-with-special-chars.md rename to test/functional/cases/standard/code-block-with-special-chars.md diff --git a/test/cases/code-block.html b/test/functional/cases/standard/code-block.html similarity index 100% rename from test/cases/code-block.html rename to test/functional/cases/standard/code-block.html diff --git a/test/cases/code-block.md b/test/functional/cases/standard/code-block.md similarity index 100% rename from test/cases/code-block.md rename to test/functional/cases/standard/code-block.md diff --git a/test/cases/double-emphasis.html b/test/functional/cases/standard/double-emphasis.html similarity index 100% rename from test/cases/double-emphasis.html rename to test/functional/cases/standard/double-emphasis.html diff --git a/test/cases/double-emphasis.md b/test/functional/cases/standard/double-emphasis.md similarity index 100% rename from test/cases/double-emphasis.md rename to test/functional/cases/standard/double-emphasis.md diff --git a/test/cases/doubline-list.html b/test/functional/cases/standard/doubline-list.html similarity index 100% rename from test/cases/doubline-list.html rename to test/functional/cases/standard/doubline-list.html diff --git a/test/cases/doubline-list.md b/test/functional/cases/standard/doubline-list.md similarity index 100% rename from test/cases/doubline-list.md rename to test/functional/cases/standard/doubline-list.md diff --git a/test/cases/ellipsis.html b/test/functional/cases/standard/ellipsis.html similarity index 100% rename from test/cases/ellipsis.html rename to test/functional/cases/standard/ellipsis.html diff --git a/test/cases/ellipsis.md b/test/functional/cases/standard/ellipsis.md similarity index 100% rename from test/cases/ellipsis.md rename to test/functional/cases/standard/ellipsis.md diff --git a/test/cases/emphasis-inside-inline-code.html b/test/functional/cases/standard/emphasis-inside-inline-code.html similarity index 100% rename from test/cases/emphasis-inside-inline-code.html rename to test/functional/cases/standard/emphasis-inside-inline-code.html diff --git a/test/cases/emphasis-inside-inline-code.md b/test/functional/cases/standard/emphasis-inside-inline-code.md similarity index 100% rename from test/cases/emphasis-inside-inline-code.md rename to test/functional/cases/standard/emphasis-inside-inline-code.md diff --git a/test/cases/emphasis.html b/test/functional/cases/standard/emphasis.html similarity index 100% rename from test/cases/emphasis.html rename to test/functional/cases/standard/emphasis.html diff --git a/test/cases/emphasis.md b/test/functional/cases/standard/emphasis.md similarity index 100% rename from test/cases/emphasis.md rename to test/functional/cases/standard/emphasis.md diff --git a/test/cases/encodeHTMLCodeTags.html b/test/functional/cases/standard/encodeHTMLCodeTags.html similarity index 100% rename from test/cases/encodeHTMLCodeTags.html rename to test/functional/cases/standard/encodeHTMLCodeTags.html diff --git a/test/cases/encodeHTMLCodeTags.md b/test/functional/cases/standard/encodeHTMLCodeTags.md similarity index 100% rename from test/cases/encodeHTMLCodeTags.md rename to test/functional/cases/standard/encodeHTMLCodeTags.md diff --git a/test/cases/escaped-number-period.html b/test/functional/cases/standard/escaped-number-period.html similarity index 100% rename from test/cases/escaped-number-period.html rename to test/functional/cases/standard/escaped-number-period.html diff --git a/test/cases/escaped-number-period.md b/test/functional/cases/standard/escaped-number-period.md similarity index 100% rename from test/cases/escaped-number-period.md rename to test/functional/cases/standard/escaped-number-period.md diff --git a/test/cases/escaping.html b/test/functional/cases/standard/escaping.html similarity index 100% rename from test/cases/escaping.html rename to test/functional/cases/standard/escaping.html diff --git a/test/cases/escaping.md b/test/functional/cases/standard/escaping.md similarity index 100% rename from test/cases/escaping.md rename to test/functional/cases/standard/escaping.md diff --git a/test/cases/github-style-at-start.html b/test/functional/cases/standard/github-style-at-start.html similarity index 100% rename from test/cases/github-style-at-start.html rename to test/functional/cases/standard/github-style-at-start.html diff --git a/test/cases/github-style-at-start.md b/test/functional/cases/standard/github-style-at-start.md similarity index 100% rename from test/cases/github-style-at-start.md rename to test/functional/cases/standard/github-style-at-start.md diff --git a/test/cases/github-style-codeblock-inside-quote.html b/test/functional/cases/standard/github-style-codeblock-inside-quote.html similarity index 100% rename from test/cases/github-style-codeblock-inside-quote.html rename to test/functional/cases/standard/github-style-codeblock-inside-quote.html diff --git a/test/cases/github-style-codeblock-inside-quote.md b/test/functional/cases/standard/github-style-codeblock-inside-quote.md similarity index 100% rename from test/cases/github-style-codeblock-inside-quote.md rename to test/functional/cases/standard/github-style-codeblock-inside-quote.md diff --git a/test/cases/github-style-codeblock.html b/test/functional/cases/standard/github-style-codeblock.html similarity index 100% rename from test/cases/github-style-codeblock.html rename to test/functional/cases/standard/github-style-codeblock.html diff --git a/test/cases/github-style-codeblock.md b/test/functional/cases/standard/github-style-codeblock.md similarity index 100% rename from test/cases/github-style-codeblock.md rename to test/functional/cases/standard/github-style-codeblock.md diff --git a/test/cases/github-style-linebreaks.html b/test/functional/cases/standard/github-style-linebreaks.html similarity index 100% rename from test/cases/github-style-linebreaks.html rename to test/functional/cases/standard/github-style-linebreaks.html diff --git a/test/cases/github-style-linebreaks.md b/test/functional/cases/standard/github-style-linebreaks.md similarity index 100% rename from test/cases/github-style-linebreaks.md rename to test/functional/cases/standard/github-style-linebreaks.md diff --git a/test/cases/h1-with-double-hash.html b/test/functional/cases/standard/h1-with-double-hash.html similarity index 100% rename from test/cases/h1-with-double-hash.html rename to test/functional/cases/standard/h1-with-double-hash.html diff --git a/test/cases/h1-with-double-hash.md b/test/functional/cases/standard/h1-with-double-hash.md similarity index 100% rename from test/cases/h1-with-double-hash.md rename to test/functional/cases/standard/h1-with-double-hash.md diff --git a/test/cases/h1-with-equals.html b/test/functional/cases/standard/h1-with-equals.html similarity index 100% rename from test/cases/h1-with-equals.html rename to test/functional/cases/standard/h1-with-equals.html diff --git a/test/cases/h1-with-equals.md b/test/functional/cases/standard/h1-with-equals.md similarity index 100% rename from test/cases/h1-with-equals.md rename to test/functional/cases/standard/h1-with-equals.md diff --git a/test/cases/h1-with-single-hash.html b/test/functional/cases/standard/h1-with-single-hash.html similarity index 100% rename from test/cases/h1-with-single-hash.html rename to test/functional/cases/standard/h1-with-single-hash.html diff --git a/test/cases/h1-with-single-hash.md b/test/functional/cases/standard/h1-with-single-hash.md similarity index 100% rename from test/cases/h1-with-single-hash.md rename to test/functional/cases/standard/h1-with-single-hash.md diff --git a/test/cases/h2-with-dashes.html b/test/functional/cases/standard/h2-with-dashes.html similarity index 100% rename from test/cases/h2-with-dashes.html rename to test/functional/cases/standard/h2-with-dashes.html diff --git a/test/cases/h2-with-dashes.md b/test/functional/cases/standard/h2-with-dashes.md similarity index 100% rename from test/cases/h2-with-dashes.md rename to test/functional/cases/standard/h2-with-dashes.md diff --git a/test/cases/h2-with-double-hash.html b/test/functional/cases/standard/h2-with-double-hash.html similarity index 100% rename from test/cases/h2-with-double-hash.html rename to test/functional/cases/standard/h2-with-double-hash.html diff --git a/test/cases/h2-with-double-hash.md b/test/functional/cases/standard/h2-with-double-hash.md similarity index 100% rename from test/cases/h2-with-double-hash.md rename to test/functional/cases/standard/h2-with-double-hash.md diff --git a/test/cases/h2-with-single-hash.html b/test/functional/cases/standard/h2-with-single-hash.html similarity index 100% rename from test/cases/h2-with-single-hash.html rename to test/functional/cases/standard/h2-with-single-hash.html diff --git a/test/cases/h2-with-single-hash.md b/test/functional/cases/standard/h2-with-single-hash.md similarity index 100% rename from test/cases/h2-with-single-hash.md rename to test/functional/cases/standard/h2-with-single-hash.md diff --git a/test/cases/h3-with-double-hash.html b/test/functional/cases/standard/h3-with-double-hash.html similarity index 100% rename from test/cases/h3-with-double-hash.html rename to test/functional/cases/standard/h3-with-double-hash.html diff --git a/test/cases/h3-with-double-hash.md b/test/functional/cases/standard/h3-with-double-hash.md similarity index 100% rename from test/cases/h3-with-double-hash.md rename to test/functional/cases/standard/h3-with-double-hash.md diff --git a/test/cases/h3-with-single-hash.html b/test/functional/cases/standard/h3-with-single-hash.html similarity index 100% rename from test/cases/h3-with-single-hash.html rename to test/functional/cases/standard/h3-with-single-hash.html diff --git a/test/cases/h3-with-single-hash.md b/test/functional/cases/standard/h3-with-single-hash.md similarity index 100% rename from test/cases/h3-with-single-hash.md rename to test/functional/cases/standard/h3-with-single-hash.md diff --git a/test/cases/h4-with-single-hash.html b/test/functional/cases/standard/h4-with-single-hash.html similarity index 100% rename from test/cases/h4-with-single-hash.html rename to test/functional/cases/standard/h4-with-single-hash.html diff --git a/test/cases/h4-with-single-hash.md b/test/functional/cases/standard/h4-with-single-hash.md similarity index 100% rename from test/cases/h4-with-single-hash.md rename to test/functional/cases/standard/h4-with-single-hash.md diff --git a/test/cases/h5-with-single-hash.html b/test/functional/cases/standard/h5-with-single-hash.html similarity index 100% rename from test/cases/h5-with-single-hash.html rename to test/functional/cases/standard/h5-with-single-hash.html diff --git a/test/cases/h5-with-single-hash.md b/test/functional/cases/standard/h5-with-single-hash.md similarity index 100% rename from test/cases/h5-with-single-hash.md rename to test/functional/cases/standard/h5-with-single-hash.md diff --git a/test/cases/h6-with-single-hash.html b/test/functional/cases/standard/h6-with-single-hash.html similarity index 100% rename from test/cases/h6-with-single-hash.html rename to test/functional/cases/standard/h6-with-single-hash.html diff --git a/test/cases/h6-with-single-hash.md b/test/functional/cases/standard/h6-with-single-hash.md similarity index 100% rename from test/cases/h6-with-single-hash.md rename to test/functional/cases/standard/h6-with-single-hash.md diff --git a/test/cases/horizontal-rules.html b/test/functional/cases/standard/horizontal-rules.html similarity index 100% rename from test/cases/horizontal-rules.html rename to test/functional/cases/standard/horizontal-rules.html diff --git a/test/cases/horizontal-rules.md b/test/functional/cases/standard/horizontal-rules.md similarity index 100% rename from test/cases/horizontal-rules.md rename to test/functional/cases/standard/horizontal-rules.md diff --git a/test/cases/html-comments.html b/test/functional/cases/standard/html-comments.html similarity index 100% rename from test/cases/html-comments.html rename to test/functional/cases/standard/html-comments.html diff --git a/test/cases/html-comments.md b/test/functional/cases/standard/html-comments.md similarity index 100% rename from test/cases/html-comments.md rename to test/functional/cases/standard/html-comments.md diff --git a/test/cases/html-inside-listed-code.html b/test/functional/cases/standard/html-inside-listed-code.html similarity index 100% rename from test/cases/html-inside-listed-code.html rename to test/functional/cases/standard/html-inside-listed-code.html diff --git a/test/cases/html-inside-listed-code.md b/test/functional/cases/standard/html-inside-listed-code.md similarity index 100% rename from test/cases/html-inside-listed-code.md rename to test/functional/cases/standard/html-inside-listed-code.md diff --git a/test/cases/html5-strutural-tags.html b/test/functional/cases/standard/html5-strutural-tags.html similarity index 100% rename from test/cases/html5-strutural-tags.html rename to test/functional/cases/standard/html5-strutural-tags.html diff --git a/test/cases/html5-strutural-tags.md b/test/functional/cases/standard/html5-strutural-tags.md similarity index 100% rename from test/cases/html5-strutural-tags.md rename to test/functional/cases/standard/html5-strutural-tags.md diff --git a/test/cases/images-followed-by-brackets.html b/test/functional/cases/standard/images-followed-by-brackets.html similarity index 100% rename from test/cases/images-followed-by-brackets.html rename to test/functional/cases/standard/images-followed-by-brackets.html diff --git a/test/cases/images-followed-by-brackets.md b/test/functional/cases/standard/images-followed-by-brackets.md similarity index 100% rename from test/cases/images-followed-by-brackets.md rename to test/functional/cases/standard/images-followed-by-brackets.md diff --git a/test/cases/images.html b/test/functional/cases/standard/images.html similarity index 100% rename from test/cases/images.html rename to test/functional/cases/standard/images.html diff --git a/test/cases/images.md b/test/functional/cases/standard/images.md similarity index 100% rename from test/cases/images.md rename to test/functional/cases/standard/images.md diff --git a/test/cases/implicit-anchors.html b/test/functional/cases/standard/implicit-anchors.html similarity index 100% rename from test/cases/implicit-anchors.html rename to test/functional/cases/standard/implicit-anchors.html diff --git a/test/cases/implicit-anchors.md b/test/functional/cases/standard/implicit-anchors.md similarity index 100% rename from test/cases/implicit-anchors.md rename to test/functional/cases/standard/implicit-anchors.md diff --git a/test/cases/inline-anchors.html b/test/functional/cases/standard/inline-anchors.html similarity index 100% rename from test/cases/inline-anchors.html rename to test/functional/cases/standard/inline-anchors.html diff --git a/test/cases/inline-anchors.md b/test/functional/cases/standard/inline-anchors.md similarity index 100% rename from test/cases/inline-anchors.md rename to test/functional/cases/standard/inline-anchors.md diff --git a/test/cases/inline-code.html b/test/functional/cases/standard/inline-code.html similarity index 100% rename from test/cases/inline-code.html rename to test/functional/cases/standard/inline-code.html diff --git a/test/cases/inline-code.md b/test/functional/cases/standard/inline-code.md similarity index 100% rename from test/cases/inline-code.md rename to test/functional/cases/standard/inline-code.md diff --git a/test/cases/inline-escaped-chars.html b/test/functional/cases/standard/inline-escaped-chars.html similarity index 100% rename from test/cases/inline-escaped-chars.html rename to test/functional/cases/standard/inline-escaped-chars.html diff --git a/test/cases/inline-escaped-chars.md b/test/functional/cases/standard/inline-escaped-chars.md similarity index 100% rename from test/cases/inline-escaped-chars.md rename to test/functional/cases/standard/inline-escaped-chars.md diff --git a/test/cases/inline-style-tag.html b/test/functional/cases/standard/inline-style-tag.html similarity index 100% rename from test/cases/inline-style-tag.html rename to test/functional/cases/standard/inline-style-tag.html diff --git a/test/cases/inline-style-tag.md b/test/functional/cases/standard/inline-style-tag.md similarity index 100% rename from test/cases/inline-style-tag.md rename to test/functional/cases/standard/inline-style-tag.md diff --git a/test/cases/lazy-blockquote.html b/test/functional/cases/standard/lazy-blockquote.html similarity index 100% rename from test/cases/lazy-blockquote.html rename to test/functional/cases/standard/lazy-blockquote.html diff --git a/test/cases/lazy-blockquote.md b/test/functional/cases/standard/lazy-blockquote.md similarity index 100% rename from test/cases/lazy-blockquote.md rename to test/functional/cases/standard/lazy-blockquote.md diff --git a/test/cases/line-starts-with-html.html b/test/functional/cases/standard/line-starts-with-html.html similarity index 100% rename from test/cases/line-starts-with-html.html rename to test/functional/cases/standard/line-starts-with-html.html diff --git a/test/cases/line-starts-with-html.md b/test/functional/cases/standard/line-starts-with-html.md similarity index 100% rename from test/cases/line-starts-with-html.md rename to test/functional/cases/standard/line-starts-with-html.md diff --git a/test/cases/list-followed-by-blockquote.html b/test/functional/cases/standard/list-followed-by-blockquote.html similarity index 100% rename from test/cases/list-followed-by-blockquote.html rename to test/functional/cases/standard/list-followed-by-blockquote.html diff --git a/test/cases/list-followed-by-blockquote.md b/test/functional/cases/standard/list-followed-by-blockquote.md similarity index 100% rename from test/cases/list-followed-by-blockquote.md rename to test/functional/cases/standard/list-followed-by-blockquote.md diff --git a/test/cases/list-followed-by-ghcode.html b/test/functional/cases/standard/list-followed-by-ghcode.html similarity index 100% rename from test/cases/list-followed-by-ghcode.html rename to test/functional/cases/standard/list-followed-by-ghcode.html diff --git a/test/cases/list-followed-by-ghcode.md b/test/functional/cases/standard/list-followed-by-ghcode.md similarity index 100% rename from test/cases/list-followed-by-ghcode.md rename to test/functional/cases/standard/list-followed-by-ghcode.md diff --git a/test/cases/list-with-blockquote.html b/test/functional/cases/standard/list-with-blockquote.html similarity index 100% rename from test/cases/list-with-blockquote.html rename to test/functional/cases/standard/list-with-blockquote.html diff --git a/test/cases/list-with-blockquote.md b/test/functional/cases/standard/list-with-blockquote.md similarity index 100% rename from test/cases/list-with-blockquote.md rename to test/functional/cases/standard/list-with-blockquote.md diff --git a/test/cases/list-with-code.html b/test/functional/cases/standard/list-with-code.html similarity index 100% rename from test/cases/list-with-code.html rename to test/functional/cases/standard/list-with-code.html diff --git a/test/cases/list-with-code.md b/test/functional/cases/standard/list-with-code.md similarity index 100% rename from test/cases/list-with-code.md rename to test/functional/cases/standard/list-with-code.md diff --git a/test/cases/literal-html-tags.html b/test/functional/cases/standard/literal-html-tags.html similarity index 100% rename from test/cases/literal-html-tags.html rename to test/functional/cases/standard/literal-html-tags.html diff --git a/test/cases/literal-html-tags.md b/test/functional/cases/standard/literal-html-tags.md similarity index 100% rename from test/cases/literal-html-tags.md rename to test/functional/cases/standard/literal-html-tags.md diff --git a/test/cases/multi-paragraph-list.html b/test/functional/cases/standard/multi-paragraph-list.html similarity index 100% rename from test/cases/multi-paragraph-list.html rename to test/functional/cases/standard/multi-paragraph-list.html diff --git a/test/cases/multi-paragraph-list.md b/test/functional/cases/standard/multi-paragraph-list.md similarity index 100% rename from test/cases/multi-paragraph-list.md rename to test/functional/cases/standard/multi-paragraph-list.md diff --git a/test/cases/multiline-unordered-list.html b/test/functional/cases/standard/multiline-unordered-list.html similarity index 100% rename from test/cases/multiline-unordered-list.html rename to test/functional/cases/standard/multiline-unordered-list.html diff --git a/test/cases/multiline-unordered-list.md b/test/functional/cases/standard/multiline-unordered-list.md similarity index 100% rename from test/cases/multiline-unordered-list.md rename to test/functional/cases/standard/multiline-unordered-list.md diff --git a/test/cases/nested-blockquote.html b/test/functional/cases/standard/nested-blockquote.html similarity index 100% rename from test/cases/nested-blockquote.html rename to test/functional/cases/standard/nested-blockquote.html diff --git a/test/cases/nested-blockquote.md b/test/functional/cases/standard/nested-blockquote.md similarity index 100% rename from test/cases/nested-blockquote.md rename to test/functional/cases/standard/nested-blockquote.md diff --git a/test/cases/nested-gh-codeblocks.html b/test/functional/cases/standard/nested-gh-codeblocks.html similarity index 100% rename from test/cases/nested-gh-codeblocks.html rename to test/functional/cases/standard/nested-gh-codeblocks.html diff --git a/test/cases/nested-gh-codeblocks.md b/test/functional/cases/standard/nested-gh-codeblocks.md similarity index 100% rename from test/cases/nested-gh-codeblocks.md rename to test/functional/cases/standard/nested-gh-codeblocks.md diff --git a/test/cases/obfuscated-emails.html b/test/functional/cases/standard/obfuscated-emails.html similarity index 100% rename from test/cases/obfuscated-emails.html rename to test/functional/cases/standard/obfuscated-emails.html diff --git a/test/cases/obfuscated-emails.md b/test/functional/cases/standard/obfuscated-emails.md similarity index 100% rename from test/cases/obfuscated-emails.md rename to test/functional/cases/standard/obfuscated-emails.md diff --git a/test/cases/ordered-list-same-number.html b/test/functional/cases/standard/ordered-list-same-number.html similarity index 100% rename from test/cases/ordered-list-same-number.html rename to test/functional/cases/standard/ordered-list-same-number.html diff --git a/test/cases/ordered-list-same-number.md b/test/functional/cases/standard/ordered-list-same-number.md similarity index 100% rename from test/cases/ordered-list-same-number.md rename to test/functional/cases/standard/ordered-list-same-number.md diff --git a/test/cases/ordered-list-starting-number.html b/test/functional/cases/standard/ordered-list-starting-number.html similarity index 100% rename from test/cases/ordered-list-starting-number.html rename to test/functional/cases/standard/ordered-list-starting-number.html diff --git a/test/cases/ordered-list-starting-number.md b/test/functional/cases/standard/ordered-list-starting-number.md similarity index 100% rename from test/cases/ordered-list-starting-number.md rename to test/functional/cases/standard/ordered-list-starting-number.md diff --git a/test/cases/ordered-list-wrong-numbers.html b/test/functional/cases/standard/ordered-list-wrong-numbers.html similarity index 100% rename from test/cases/ordered-list-wrong-numbers.html rename to test/functional/cases/standard/ordered-list-wrong-numbers.html diff --git a/test/cases/ordered-list-wrong-numbers.md b/test/functional/cases/standard/ordered-list-wrong-numbers.md similarity index 100% rename from test/cases/ordered-list-wrong-numbers.md rename to test/functional/cases/standard/ordered-list-wrong-numbers.md diff --git a/test/cases/ordered-list.html b/test/functional/cases/standard/ordered-list.html similarity index 100% rename from test/cases/ordered-list.html rename to test/functional/cases/standard/ordered-list.html diff --git a/test/cases/ordered-list.md b/test/functional/cases/standard/ordered-list.md similarity index 100% rename from test/cases/ordered-list.md rename to test/functional/cases/standard/ordered-list.md diff --git a/test/cases/paragraphed-list-with-sublists.html b/test/functional/cases/standard/paragraphed-list-with-sublists.html similarity index 100% rename from test/cases/paragraphed-list-with-sublists.html rename to test/functional/cases/standard/paragraphed-list-with-sublists.html diff --git a/test/cases/paragraphed-list-with-sublists.md b/test/functional/cases/standard/paragraphed-list-with-sublists.md similarity index 100% rename from test/cases/paragraphed-list-with-sublists.md rename to test/functional/cases/standard/paragraphed-list-with-sublists.md diff --git a/test/cases/pre-code-tags-inside-code-block.html b/test/functional/cases/standard/pre-code-tags-inside-code-block.html similarity index 100% rename from test/cases/pre-code-tags-inside-code-block.html rename to test/functional/cases/standard/pre-code-tags-inside-code-block.html diff --git a/test/cases/pre-code-tags-inside-code-block.md b/test/functional/cases/standard/pre-code-tags-inside-code-block.md similarity index 100% rename from test/cases/pre-code-tags-inside-code-block.md rename to test/functional/cases/standard/pre-code-tags-inside-code-block.md diff --git a/test/cases/pre-code-tags.html b/test/functional/cases/standard/pre-code-tags.html similarity index 100% rename from test/cases/pre-code-tags.html rename to test/functional/cases/standard/pre-code-tags.html diff --git a/test/cases/pre-code-tags.md b/test/functional/cases/standard/pre-code-tags.md similarity index 100% rename from test/cases/pre-code-tags.md rename to test/functional/cases/standard/pre-code-tags.md diff --git a/test/cases/relative-anchors.html b/test/functional/cases/standard/relative-anchors.html similarity index 100% rename from test/cases/relative-anchors.html rename to test/functional/cases/standard/relative-anchors.html diff --git a/test/cases/relative-anchors.md b/test/functional/cases/standard/relative-anchors.md similarity index 100% rename from test/cases/relative-anchors.md rename to test/functional/cases/standard/relative-anchors.md diff --git a/test/cases/repeated-headers.html b/test/functional/cases/standard/repeated-headers.html similarity index 100% rename from test/cases/repeated-headers.html rename to test/functional/cases/standard/repeated-headers.html diff --git a/test/cases/repeated-headers.md b/test/functional/cases/standard/repeated-headers.md similarity index 100% rename from test/cases/repeated-headers.md rename to test/functional/cases/standard/repeated-headers.md diff --git a/test/cases/simple-paragraph.html b/test/functional/cases/standard/simple-paragraph.html similarity index 100% rename from test/cases/simple-paragraph.html rename to test/functional/cases/standard/simple-paragraph.html diff --git a/test/cases/simple-paragraph.md b/test/functional/cases/standard/simple-paragraph.md similarity index 100% rename from test/cases/simple-paragraph.md rename to test/functional/cases/standard/simple-paragraph.md diff --git a/test/cases/strip-references.html b/test/functional/cases/standard/strip-references.html similarity index 100% rename from test/cases/strip-references.html rename to test/functional/cases/standard/strip-references.html diff --git a/test/cases/strip-references.md b/test/functional/cases/standard/strip-references.md similarity index 100% rename from test/cases/strip-references.md rename to test/functional/cases/standard/strip-references.md diff --git a/test/cases/strong.html b/test/functional/cases/standard/strong.html similarity index 100% rename from test/cases/strong.html rename to test/functional/cases/standard/strong.html diff --git a/test/cases/strong.md b/test/functional/cases/standard/strong.md similarity index 100% rename from test/cases/strong.md rename to test/functional/cases/standard/strong.md diff --git a/test/cases/unordered-list-asterisk.html b/test/functional/cases/standard/unordered-list-asterisk.html similarity index 100% rename from test/cases/unordered-list-asterisk.html rename to test/functional/cases/standard/unordered-list-asterisk.html diff --git a/test/cases/unordered-list-asterisk.md b/test/functional/cases/standard/unordered-list-asterisk.md similarity index 100% rename from test/cases/unordered-list-asterisk.md rename to test/functional/cases/standard/unordered-list-asterisk.md diff --git a/test/cases/unordered-list-minus.html b/test/functional/cases/standard/unordered-list-minus.html similarity index 100% rename from test/cases/unordered-list-minus.html rename to test/functional/cases/standard/unordered-list-minus.html diff --git a/test/cases/unordered-list-minus.md b/test/functional/cases/standard/unordered-list-minus.md similarity index 100% rename from test/cases/unordered-list-minus.md rename to test/functional/cases/standard/unordered-list-minus.md diff --git a/test/cases/unordered-list-plus.html b/test/functional/cases/standard/unordered-list-plus.html similarity index 100% rename from test/cases/unordered-list-plus.html rename to test/functional/cases/standard/unordered-list-plus.html diff --git a/test/cases/unordered-list-plus.md b/test/functional/cases/standard/unordered-list-plus.md similarity index 100% rename from test/cases/unordered-list-plus.md rename to test/functional/cases/standard/unordered-list-plus.md diff --git a/test/cases/url-with-parenthesis.html b/test/functional/cases/standard/url-with-parenthesis.html similarity index 100% rename from test/cases/url-with-parenthesis.html rename to test/functional/cases/standard/url-with-parenthesis.html diff --git a/test/cases/url-with-parenthesis.md b/test/functional/cases/standard/url-with-parenthesis.md similarity index 100% rename from test/cases/url-with-parenthesis.md rename to test/functional/cases/standard/url-with-parenthesis.md diff --git a/test/bootstrap.js b/test/functional/makehtml/makehtml.bootstrap.js similarity index 97% rename from test/bootstrap.js rename to test/functional/makehtml/makehtml.bootstrap.js index 6519dc1..c518c8a 100644 --- a/test/bootstrap.js +++ b/test/functional/makehtml/makehtml.bootstrap.js @@ -83,7 +83,7 @@ getTestSuite: getTestSuite, assertion: assertion, normalize: normalize, - showdown: require('../.build/showdown.js') + showdown: require('../../../.build/showdown.js') }; })(); diff --git a/test/node/testsuite.features.js b/test/functional/makehtml/testsuite.features.js similarity index 91% rename from test/node/testsuite.features.js rename to test/functional/makehtml/testsuite.features.js index f96515f..d49cc68 100644 --- a/test/node/testsuite.features.js +++ b/test/functional/makehtml/testsuite.features.js @@ -1,23 +1,23 @@ /** * Created by Estevao on 08-06-2015. */ -var bootstrap = require('../bootstrap.js'), +var bootstrap = require('./makehtml.bootstrap.js'), showdown = bootstrap.showdown, assertion = bootstrap.assertion, - testsuite = bootstrap.getTestSuite('test/features/'), - tableSuite = bootstrap.getTestSuite('test/features/tables/'), - simplifiedAutoLinkSuite = bootstrap.getTestSuite('test/features/simplifiedAutoLink/'), - openLinksInNewWindowSuite = bootstrap.getTestSuite('test/features/openLinksInNewWindow/'), - disableForced4SpacesIndentedSublistsSuite = bootstrap.getTestSuite('test/features/disableForced4SpacesIndentedSublists/'), - rawHeaderIdSuite = bootstrap.getTestSuite('test/features/rawHeaderId/'), - rawPrefixHeaderIdSuite = bootstrap.getTestSuite('test/features/rawPrefixHeaderId/'), - emojisSuite = bootstrap.getTestSuite('test/features/emojis/'), - underlineSuite = bootstrap.getTestSuite('test/features/underline/'), - literalMidWordUnderscoresSuite = bootstrap.getTestSuite('test/features/literalMidWordUnderscores/'), - literalMidWordAsterisksSuite = bootstrap.getTestSuite('test/features/literalMidWordAsterisks/'), - completeHTMLOutputSuite = bootstrap.getTestSuite('test/features/completeHTMLOutput/'), - metadataSuite = bootstrap.getTestSuite('test/features/metadata/'), - splitAdjacentBlockquotesSuite = bootstrap.getTestSuite('test/features/splitAdjacentBlockquotes/'); + testsuite = bootstrap.getTestSuite('test/functional/cases/features/'), + tableSuite = bootstrap.getTestSuite('test/functional/cases/features/tables/'), + simplifiedAutoLinkSuite = bootstrap.getTestSuite('test/functional/cases/features/simplifiedAutoLink/'), + openLinksInNewWindowSuite = bootstrap.getTestSuite('test/functional/cases/features/openLinksInNewWindow/'), + disableForced4SpacesIndentedSublistsSuite = bootstrap.getTestSuite('test/functional/cases/features/disableForced4SpacesIndentedSublists/'), + rawHeaderIdSuite = bootstrap.getTestSuite('test/functional/cases/features/rawHeaderId/'), + rawPrefixHeaderIdSuite = bootstrap.getTestSuite('test/functional/cases/features/rawPrefixHeaderId/'), + emojisSuite = bootstrap.getTestSuite('test/functional/cases/features/emojis/'), + underlineSuite = bootstrap.getTestSuite('test/functional/cases/features/underline/'), + literalMidWordUnderscoresSuite = bootstrap.getTestSuite('test/functional/cases/features/literalMidWordUnderscores/'), + literalMidWordAsterisksSuite = bootstrap.getTestSuite('test/functional/cases/features/literalMidWordAsterisks/'), + completeHTMLOutputSuite = bootstrap.getTestSuite('test/functional/cases/features/completeHTMLOutput/'), + metadataSuite = bootstrap.getTestSuite('test/functional/cases/features/metadata/'), + splitAdjacentBlockquotesSuite = bootstrap.getTestSuite('test/functional/cases/features/splitAdjacentBlockquotes/'); describe('makeHtml() features testsuite', function () { 'use strict'; diff --git a/test/node/testsuite.ghost.js b/test/functional/makehtml/testsuite.ghost.js similarity index 84% rename from test/node/testsuite.ghost.js rename to test/functional/makehtml/testsuite.ghost.js index 8c782ea..0d48108 100644 --- a/test/node/testsuite.ghost.js +++ b/test/functional/makehtml/testsuite.ghost.js @@ -1,7 +1,7 @@ /** * Created by Estevao on 14-07-2015. */ -var bootstrap = require('../bootstrap.js'), +var bootstrap = require('./makehtml.bootstrap.js'), converter = new bootstrap.showdown.Converter({ strikethrough: true, literalMidWordUnderscores: true, @@ -11,7 +11,7 @@ var bootstrap = require('../bootstrap.js'), tasklists: true //extra }), assertion = bootstrap.assertion, - testsuite = bootstrap.getTestSuite('test/ghost/'); + testsuite = bootstrap.getTestSuite('test/functional/cases/ghost/'); //MD-Testsuite (borrowed from karlcow/markdown-testsuite) describe('makeHtml() ghost testsuite', function () { diff --git a/test/node/testsuite.issues.js b/test/functional/makehtml/testsuite.issues.js similarity index 73% rename from test/node/testsuite.issues.js rename to test/functional/makehtml/testsuite.issues.js index 8580a3e..79b21ba 100644 --- a/test/node/testsuite.issues.js +++ b/test/functional/makehtml/testsuite.issues.js @@ -1,10 +1,10 @@ /** * Created by Estevao on 08-06-2015. */ -var bootstrap = require('../bootstrap.js'), +var bootstrap = require('./makehtml.bootstrap.js'), converter = new bootstrap.showdown.Converter(), assertion = bootstrap.assertion, - testsuite = bootstrap.getTestSuite('test/issues/'); + testsuite = bootstrap.getTestSuite('test/functional/cases/issues/'); describe('makeHtml() issues testsuite', function () { 'use strict'; diff --git a/test/node/testsuite.karlcow.js b/test/functional/makehtml/testsuite.karlcow.js similarity index 68% rename from test/node/testsuite.karlcow.js rename to test/functional/makehtml/testsuite.karlcow.js index 072c41f..9fb2944 100644 --- a/test/node/testsuite.karlcow.js +++ b/test/functional/makehtml/testsuite.karlcow.js @@ -1,7 +1,11 @@ -var bootstrap = require('../bootstrap.js'), +/** + * Created by Estevao on 08-06-2015. + */ + +var bootstrap = require('./makehtml.bootstrap.js'), converter = new bootstrap.showdown.Converter({noHeaderId: true}), assertion = bootstrap.assertion, - testsuite = bootstrap.getTestSuite('test/karlcow/'); + testsuite = bootstrap.getTestSuite('test/functional/cases/karlcow/'); //MD-Testsuite (borrowed from karlcow/markdown-testsuite) describe('makeHtml() karlcow testsuite', function () { diff --git a/test/node/testsuite.standard.js b/test/functional/makehtml/testsuite.standard.js similarity index 63% rename from test/node/testsuite.standard.js rename to test/functional/makehtml/testsuite.standard.js index 1746998..47f4a5d 100644 --- a/test/node/testsuite.standard.js +++ b/test/functional/makehtml/testsuite.standard.js @@ -1,7 +1,11 @@ -var bootstrap = require('../bootstrap.js'), +/** + * Created by Estevao on 08-06-2015. + */ + +var bootstrap = require('./makehtml.bootstrap.js'), converter = new bootstrap.showdown.Converter(), assertion = bootstrap.assertion, - testsuite = bootstrap.getTestSuite('test/cases/'); + testsuite = bootstrap.getTestSuite('test/functional/cases/standard/'); describe('makeHtml() standard testsuite', function () { 'use strict'; diff --git a/test/node/cli.js b/test/node/cli.js deleted file mode 100644 index 7dba282..0000000 --- a/test/node/cli.js +++ /dev/null @@ -1,18 +0,0 @@ -/* -var semver = require('semver'), - cmd = 'node bin/showdown.js'; - -describe('showdown cli', function () { - 'use strict'; - if (semver.gt(process.versions.node, '0.12.0')) { - var execSync = require('child_process').execSync; - it('basic stdin stdout', function () { - var otp = execSync(cmd + ' makehtml -q', { - encoding: 'utf8', - input: '**foo**' - }); - otp.trim().should.equal('

foo

'); - }); - } -}); -*/ diff --git a/test/node/performance.js b/test/node/performance.js deleted file mode 100644 index 2285c65..0000000 --- a/test/node/performance.js +++ /dev/null @@ -1,146 +0,0 @@ -/** - * Created by Tivie on 21/12/2016. - */ -'use strict'; -var fs = require('fs'), - showdown = require('../bootstrap').showdown, - converter = new showdown.Converter(), - pkg = require('../../package.json'), - performance = require('../performance/performance.js'); - -performance.setLibraryName(pkg.name); -performance.setVersion(pkg.version); -performance.setGithubLink('https://github.com/showdownjs/showdown/tree/'); - -var globals = { - gHtmlBlocks: [], - gHtmlMdBlocks: [], - gHtmlSpans: [], - gUrls: {}, - gTitles: {}, - gDimensions: {}, - gListLevel: 0, - hashLinkCounts: {}, - langExtensions: [], - outputModifiers: [], - converter: converter, - ghCodeBlocks: [] - }, - options = showdown.getOptions(); - -function runTests () { - var testMDFile = fs.readFileSync('test/performance.testfile.md', 'utf8'); - new performance.Suite('Basic') - .setOption('cycles', 50) - .add('Simple "Hello World"', function () { - converter.makeHtml('*Hello* **World**!'); - }) - .add('performance.testfile.md', { - prepare: function () { - return testMDFile; - }, - test: function (mdText) { - converter.makeHtml(mdText); - } - }); - new performance.Suite('subParsers') - .setOption('cycles', 20) - .add('hashHTMLBlocks', function () { - showdown.subParser('hashHTMLBlocks')(testMDFile, options, globals); - }) - .add('anchors', function () { - showdown.subParser('anchors')(testMDFile, options, globals); - }) - .add('autoLinks', function () { - showdown.subParser('autoLinks')(testMDFile, options, globals); - }) - /* - .add('blockGamut', function () { - showdown.subParser('blockGamut')(testMDFile, options, globals); - }) - */ - .add('blockQuotes', function () { - showdown.subParser('blockQuotes')(testMDFile, options, globals); - }) - .add('codeBlocks', function () { - showdown.subParser('codeBlocks')(testMDFile, options, globals); - }) - .add('codeSpans', function () { - showdown.subParser('codeSpans')(testMDFile, options, globals); - }) - .add('detab', function () { - showdown.subParser('detab')(testMDFile, options, globals); - }) - .add('encodeAmpsAndAngles', function () { - showdown.subParser('encodeAmpsAndAngles')(testMDFile, options, globals); - }) - .add('encodeBackslashEscapes', function () { - showdown.subParser('encodeBackslashEscapes')(testMDFile, options, globals); - }) - .add('encodeCode', function () { - showdown.subParser('encodeCode')(testMDFile, options, globals); - }) - .add('escapeSpecialCharsWithinTagAttributes', function () { - showdown.subParser('escapeSpecialCharsWithinTagAttributes')(testMDFile, options, globals); - }) - .add('githubCodeBlocks', function () { - showdown.subParser('githubCodeBlocks')(testMDFile, options, globals); - }) - .add('hashBlock', function () { - showdown.subParser('hashBlock')(testMDFile, options, globals); - }) - .add('hashElement', function () { - showdown.subParser('hashElement')(testMDFile, options, globals); - }) - .add('hashHTMLSpans', function () { - showdown.subParser('hashHTMLSpans')(testMDFile, options, globals); - }) - .add('hashPreCodeTags', function () { - showdown.subParser('hashPreCodeTags')(testMDFile, options, globals); - }) - .add('headers', function () { - showdown.subParser('headers')(testMDFile, options, globals); - }) - .add('horizontalRule', function () { - showdown.subParser('horizontalRule')(testMDFile, options, globals); - }) - .add('images', function () { - showdown.subParser('images')(testMDFile, options, globals); - }) - .add('italicsAndBold', function () { - showdown.subParser('italicsAndBold')(testMDFile, options, globals); - }) - .add('lists', function () { - showdown.subParser('lists')(testMDFile, options, globals); - }) - .add('outdent', function () { - showdown.subParser('outdent')(testMDFile, options, globals); - }) - .add('paragraphs', function () { - showdown.subParser('paragraphs')(testMDFile, options, globals); - }) - .add('spanGamut', function () { - showdown.subParser('spanGamut')(testMDFile, options, globals); - }) - .add('strikethrough', function () { - showdown.subParser('strikethrough')(testMDFile, options, globals); - }) - .add('stripLinkDefinitions', function () { - showdown.subParser('stripLinkDefinitions')(testMDFile, options, globals); - }) - .add('tables', function () { - showdown.subParser('tables')(testMDFile, options, globals); - }) - .add('unescapeSpecialChars', function () { - showdown.subParser('unescapeSpecialChars')(testMDFile, options, globals); - }); -} - -function generateLogs () { - performance.generateLog(null, null, true); -} - -module.exports = { - runTests: runTests, - generateLogs: generateLogs -}; diff --git a/test/performance/lib/performance.lib.js b/test/performance/lib/performance.lib.js new file mode 100644 index 0000000..c24c582 --- /dev/null +++ b/test/performance/lib/performance.lib.js @@ -0,0 +1,236 @@ +/** + * Created by Tivie on 21/12/2016. + */ +'use strict'; +var now = require('performance-now'), + fs = require('fs'), + semverSort = require('semver-sort'), + performance = { + version: '', + libraryName: '', + MDFile: 'performance.log.md', + logFile: 'performance.json', + testSuites: [], + silent: false, + githubLink: '' + }; + +performance.setVersion = function (version) { + performance.version = version; +}; + +performance.setLibraryName = function (name) { + performance.libraryName = name; +}; + +performance.setGithubLink = function (url) { + performance.githubLink = url; +}; + +performance.generateLog = function (filename, MDFilename, asTable) { + filename = filename || performance.logFile; + MDFilename = MDFilename || performance.MDFile; + asTable = !!asTable; + + fs.closeSync(fs.openSync(filename, 'a')); + + var json = fs.readFileSync(filename), + jsonParsed; + + try { + jsonParsed = JSON.parse(json); + } catch (err) { + jsonParsed = {}; + } + + var jData = []; + + for (var i = 0; i < performance.testSuites.length; ++i) { + // Suite + var suiteName = performance.testSuites[i].getSuiteName(), + cycles = performance.testSuites[i].getOption('cycles'), + subJData = { + suiteName: suiteName, + cycles: cycles, + tests: [] + }, + testSuite = performance.testSuites[i].getTests(); + //make sure tests have ran first + if (!performance.testSuites[i].hasRun()) { + performance.testSuites[i].run(); + } + + // loop through tests + for (var ii = 0; ii < testSuite.length; ++ii) { + // Test + var test = testSuite[ii]; + subJData.tests.push({ + name: test.name, + time: test.time, + maxTime: test.maxTime, + minTime: test.minTime + }); + } + jData.push(subJData); + } + jsonParsed[performance.version] = jData; + + //Sort jsonParsed + var versions = []; + for (var version in jsonParsed) { + if (jsonParsed.hasOwnProperty(version)) { + versions.push(version); + } + } + + semverSort.desc(versions); + + var finalJsonObj = {}; + + for (i = 0; i < versions.length; ++i) { + if (jsonParsed.hasOwnProperty(versions[i])) { + finalJsonObj[versions[i]] = jsonParsed[versions[i]]; + } + } + + fs.writeFileSync(filename, JSON.stringify(finalJsonObj)); + + generateMD(MDFilename, finalJsonObj, asTable); +}; + +function generateMD (filename, obj, asTable) { + fs.closeSync(fs.openSync(filename, 'w')); + asTable = !!asTable; + + // generate MD + var otp = '# Performance Tests for ' + performance.libraryName + '\n\n\n'; + + for (var version in obj) { + if (obj.hasOwnProperty(version)) { + otp += '## [version ' + version + '](' + performance.githubLink + version + ')\n\n'; + var testSuite = obj[version]; + for (var i = 0; i < testSuite.length; ++i) { + otp += '### Test Suite: ' + testSuite[i].suiteName + ' (' + testSuite[i].cycles + ' cycles)\n'; + var tests = testSuite[i].tests; + if (asTable) { + otp += '| test | avgTime | max | min |\n'; + otp += '|:-----|--------:|----:|----:|\n'; + } + for (var ii = 0; ii < tests.length; ++ii) { + var time = parseFloat(tests[ii].time).toFixed(3), + maxTime = parseFloat(tests[ii].maxTime).toFixed(3), + minTime = parseFloat(tests[ii].minTime).toFixed(3); + if (asTable) { + otp += '|' + tests[ii].name + '|' + time + '|' + maxTime + '|' + minTime + '|\n'; + } else { + otp += ' - **' + tests[ii].name + ':** took ' + time + 'ms (*max: ' + maxTime + 'ms; min: ' + minTime + 'ms*)\n'; + } + } + otp += '\n'; + } + otp += '\n'; + } + } + fs.writeFileSync(filename, otp); +} + +performance.Suite = function (name) { + var suiteName = name || '', + tests = [], + hasRunFlag = false, + options = { + cycles: 20 + }; + + this.setOption = function (key, val) { + options[key] = val; + return this; + }; + + this.getOption = function (key) { + return options[key]; + }; + + this.add = function (name, obj) { + if (typeof obj === 'function') { + obj = { + prepare: function () {}, + test: obj, + teardown: function () {} + }; + } + + if (!obj.hasOwnProperty('test')) { + throw 'obj must have a property called test'; + } + + if (typeof obj.test !== 'function') { + throw 'obj test property must be a function'; + } + + if (!obj.hasOwnProperty('prepare')) { + obj.prepare = function () {}; + } + + if (!obj.hasOwnProperty('teardown')) { + obj.teardown = function () {}; + } + + if (typeof obj.prepare !== 'function') { + throw 'obj prepare property must be a function'; + } + + if (typeof obj.teardown !== 'function') { + throw 'obj teardown property must be a function'; + } + + tests.push({ + name: name, + obj: obj, + time: 0, + maxTime: 0, + minTime: 0 + }); + return this; + }; + + this.run = function run () { + var nn = options.cycles; + console.log('running tests: ' + nn + ' cycles each.'); + for (var i = 0; i < tests.length; ++i) { + var times = [], + passVar = tests[i].obj.prepare(); + for (var ii = 0; ii < nn; ++ii) { + var before = now(); + tests[i].obj.test(passVar); + var after = now(); + times.push(after - before); + } + var total = times.reduce(function (a, b) {return a + b;}, 0); + tests[i].time = total / options.cycles; + tests[i].minTime = Math.min.apply(null, times); + tests[i].maxTime = Math.max.apply(null, times); + if (!options.silent) { + console.log(tests[i].name + ' took an average of ' + tests[i].time + 'ms (min: ' + tests[i].minTime + 'ms; max: ' + tests[i].maxTime + 'ms'); + } + } + hasRunFlag = true; + return this; + }; + + this.hasRun = function () { + return hasRunFlag; + }; + + this.getSuiteName = function () { + return suiteName; + }; + + this.getTests = function () { + return tests; + }; + + performance.testSuites.push(this); +}; + +module.exports = performance; diff --git a/test/performance/performance.js b/test/performance/performance.js index c24c582..a68e912 100644 --- a/test/performance/performance.js +++ b/test/performance/performance.js @@ -2,235 +2,140 @@ * Created by Tivie on 21/12/2016. */ 'use strict'; -var now = require('performance-now'), - fs = require('fs'), - semverSort = require('semver-sort'), - performance = { - version: '', - libraryName: '', - MDFile: 'performance.log.md', - logFile: 'performance.json', - testSuites: [], - silent: false, - githubLink: '' - }; +var fs = require('fs'), + showdown = require('../../.build/showdown.js'), + converter = new showdown.Converter(), + pkg = require('../../package.json'), + performance = require('./lib/performance.lib.js'); -performance.setVersion = function (version) { - performance.version = version; -}; +performance.setLibraryName(pkg.name); +performance.setVersion(pkg.version); +performance.setGithubLink('https://github.com/showdownjs/showdown/tree/'); -performance.setLibraryName = function (name) { - performance.libraryName = name; -}; +var globals = { + gHtmlBlocks: [], + gHtmlMdBlocks: [], + gHtmlSpans: [], + gUrls: {}, + gTitles: {}, + gDimensions: {}, + gListLevel: 0, + hashLinkCounts: {}, + langExtensions: [], + outputModifiers: [], + converter: converter, + ghCodeBlocks: [] + }, + options = showdown.getOptions(); -performance.setGithubLink = function (url) { - performance.githubLink = url; -}; - -performance.generateLog = function (filename, MDFilename, asTable) { - filename = filename || performance.logFile; - MDFilename = MDFilename || performance.MDFile; - asTable = !!asTable; - - fs.closeSync(fs.openSync(filename, 'a')); - - var json = fs.readFileSync(filename), - jsonParsed; - - try { - jsonParsed = JSON.parse(json); - } catch (err) { - jsonParsed = {}; - } - - var jData = []; - - for (var i = 0; i < performance.testSuites.length; ++i) { - // Suite - var suiteName = performance.testSuites[i].getSuiteName(), - cycles = performance.testSuites[i].getOption('cycles'), - subJData = { - suiteName: suiteName, - cycles: cycles, - tests: [] - }, - testSuite = performance.testSuites[i].getTests(); - //make sure tests have ran first - if (!performance.testSuites[i].hasRun()) { - performance.testSuites[i].run(); - } - - // loop through tests - for (var ii = 0; ii < testSuite.length; ++ii) { - // Test - var test = testSuite[ii]; - subJData.tests.push({ - name: test.name, - time: test.time, - maxTime: test.maxTime, - minTime: test.minTime - }); - } - jData.push(subJData); - } - jsonParsed[performance.version] = jData; - - //Sort jsonParsed - var versions = []; - for (var version in jsonParsed) { - if (jsonParsed.hasOwnProperty(version)) { - versions.push(version); - } - } - - semverSort.desc(versions); - - var finalJsonObj = {}; - - for (i = 0; i < versions.length; ++i) { - if (jsonParsed.hasOwnProperty(versions[i])) { - finalJsonObj[versions[i]] = jsonParsed[versions[i]]; - } - } - - fs.writeFileSync(filename, JSON.stringify(finalJsonObj)); - - generateMD(MDFilename, finalJsonObj, asTable); -}; - -function generateMD (filename, obj, asTable) { - fs.closeSync(fs.openSync(filename, 'w')); - asTable = !!asTable; - - // generate MD - var otp = '# Performance Tests for ' + performance.libraryName + '\n\n\n'; - - for (var version in obj) { - if (obj.hasOwnProperty(version)) { - otp += '## [version ' + version + '](' + performance.githubLink + version + ')\n\n'; - var testSuite = obj[version]; - for (var i = 0; i < testSuite.length; ++i) { - otp += '### Test Suite: ' + testSuite[i].suiteName + ' (' + testSuite[i].cycles + ' cycles)\n'; - var tests = testSuite[i].tests; - if (asTable) { - otp += '| test | avgTime | max | min |\n'; - otp += '|:-----|--------:|----:|----:|\n'; - } - for (var ii = 0; ii < tests.length; ++ii) { - var time = parseFloat(tests[ii].time).toFixed(3), - maxTime = parseFloat(tests[ii].maxTime).toFixed(3), - minTime = parseFloat(tests[ii].minTime).toFixed(3); - if (asTable) { - otp += '|' + tests[ii].name + '|' + time + '|' + maxTime + '|' + minTime + '|\n'; - } else { - otp += ' - **' + tests[ii].name + ':** took ' + time + 'ms (*max: ' + maxTime + 'ms; min: ' + minTime + 'ms*)\n'; - } - } - otp += '\n'; +function runTests () { + var testMDFile = fs.readFileSync('test/performance.testfile.md', 'utf8'); + new performance.Suite('Basic') + .setOption('cycles', 50) + .add('Simple "Hello World"', function () { + converter.makeHtml('*Hello* **World**!'); + }) + .add('performance.testfile.md', { + prepare: function () { + return testMDFile; + }, + test: function (mdText) { + converter.makeHtml(mdText); } - otp += '\n'; - } - } - fs.writeFileSync(filename, otp); + }); + new performance.Suite('subParsers') + .setOption('cycles', 20) + .add('hashHTMLBlocks', function () { + showdown.subParser('makehtml.hashHTMLBlocks')(testMDFile, options, globals); + }) + .add('anchors', function () { + showdown.subParser('makehtml.anchors')(testMDFile, options, globals); + }) + .add('autoLinks', function () { + showdown.subParser('makehtml.autoLinks')(testMDFile, options, globals); + }) + .add('blockQuotes', function () { + showdown.subParser('makehtml.blockQuotes')(testMDFile, options, globals); + }) + .add('codeBlocks', function () { + showdown.subParser('makehtml.codeBlocks')(testMDFile, options, globals); + }) + .add('codeSpans', function () { + showdown.subParser('makehtml.codeSpans')(testMDFile, options, globals); + }) + .add('detab', function () { + showdown.subParser('makehtml.detab')(testMDFile, options, globals); + }) + .add('encodeAmpsAndAngles', function () { + showdown.subParser('makehtml.encodeAmpsAndAngles')(testMDFile, options, globals); + }) + .add('encodeBackslashEscapes', function () { + showdown.subParser('makehtml.encodeBackslashEscapes')(testMDFile, options, globals); + }) + .add('encodeCode', function () { + showdown.subParser('makehtml.encodeCode')(testMDFile, options, globals); + }) + .add('escapeSpecialCharsWithinTagAttributes', function () { + showdown.subParser('makehtml.escapeSpecialCharsWithinTagAttributes')(testMDFile, options, globals); + }) + .add('githubCodeBlocks', function () { + showdown.subParser('makehtml.githubCodeBlocks')(testMDFile, options, globals); + }) + .add('hashBlock', function () { + showdown.subParser('makehtml.hashBlock')(testMDFile, options, globals); + }) + .add('hashElement', function () { + showdown.subParser('makehtml.hashElement')(testMDFile, options, globals); + }) + .add('hashHTMLSpans', function () { + showdown.subParser('makehtml.hashHTMLSpans')(testMDFile, options, globals); + }) + .add('hashPreCodeTags', function () { + showdown.subParser('makehtml.hashPreCodeTags')(testMDFile, options, globals); + }) + .add('headers', function () { + showdown.subParser('makehtml.headers')(testMDFile, options, globals); + }) + .add('horizontalRule', function () { + showdown.subParser('makehtml.horizontalRule')(testMDFile, options, globals); + }) + .add('images', function () { + showdown.subParser('makehtml.images')(testMDFile, options, globals); + }) + .add('italicsAndBold', function () { + showdown.subParser('makehtml.italicsAndBold')(testMDFile, options, globals); + }) + .add('lists', function () { + showdown.subParser('makehtml.lists')(testMDFile, options, globals); + }) + .add('outdent', function () { + showdown.subParser('makehtml.outdent')(testMDFile, options, globals); + }) + .add('paragraphs', function () { + showdown.subParser('makehtml.paragraphs')(testMDFile, options, globals); + }) + .add('spanGamut', function () { + showdown.subParser('makehtml.spanGamut')(testMDFile, options, globals); + }) + .add('strikethrough', function () { + showdown.subParser('makehtml.strikethrough')(testMDFile, options, globals); + }) + .add('stripLinkDefinitions', function () { + showdown.subParser('makehtml.stripLinkDefinitions')(testMDFile, options, globals); + }) + .add('tables', function () { + showdown.subParser('makehtml.tables')(testMDFile, options, globals); + }) + .add('unescapeSpecialChars', function () { + showdown.subParser('makehtml.unescapeSpecialChars')(testMDFile, options, globals); + }); } -performance.Suite = function (name) { - var suiteName = name || '', - tests = [], - hasRunFlag = false, - options = { - cycles: 20 - }; +function generateLogs () { + performance.generateLog(null, null, true); +} - this.setOption = function (key, val) { - options[key] = val; - return this; - }; - - this.getOption = function (key) { - return options[key]; - }; - - this.add = function (name, obj) { - if (typeof obj === 'function') { - obj = { - prepare: function () {}, - test: obj, - teardown: function () {} - }; - } - - if (!obj.hasOwnProperty('test')) { - throw 'obj must have a property called test'; - } - - if (typeof obj.test !== 'function') { - throw 'obj test property must be a function'; - } - - if (!obj.hasOwnProperty('prepare')) { - obj.prepare = function () {}; - } - - if (!obj.hasOwnProperty('teardown')) { - obj.teardown = function () {}; - } - - if (typeof obj.prepare !== 'function') { - throw 'obj prepare property must be a function'; - } - - if (typeof obj.teardown !== 'function') { - throw 'obj teardown property must be a function'; - } - - tests.push({ - name: name, - obj: obj, - time: 0, - maxTime: 0, - minTime: 0 - }); - return this; - }; - - this.run = function run () { - var nn = options.cycles; - console.log('running tests: ' + nn + ' cycles each.'); - for (var i = 0; i < tests.length; ++i) { - var times = [], - passVar = tests[i].obj.prepare(); - for (var ii = 0; ii < nn; ++ii) { - var before = now(); - tests[i].obj.test(passVar); - var after = now(); - times.push(after - before); - } - var total = times.reduce(function (a, b) {return a + b;}, 0); - tests[i].time = total / options.cycles; - tests[i].minTime = Math.min.apply(null, times); - tests[i].maxTime = Math.max.apply(null, times); - if (!options.silent) { - console.log(tests[i].name + ' took an average of ' + tests[i].time + 'ms (min: ' + tests[i].minTime + 'ms; max: ' + tests[i].maxTime + 'ms'); - } - } - hasRunFlag = true; - return this; - }; - - this.hasRun = function () { - return hasRunFlag; - }; - - this.getSuiteName = function () { - return suiteName; - }; - - this.getTests = function () { - return tests; - }; - - performance.testSuites.push(this); +module.exports = { + runTests: runTests, + generateLogs: generateLogs }; - -module.exports = performance; diff --git a/test/optionswp.js b/test/unit/optionswp.js similarity index 100% rename from test/optionswp.js rename to test/unit/optionswp.js diff --git a/test/node/showdown.Converter.js b/test/unit/showdown.Converter.js similarity index 98% rename from test/node/showdown.Converter.js rename to test/unit/showdown.Converter.js index 379671a..d215441 100644 --- a/test/node/showdown.Converter.js +++ b/test/unit/showdown.Converter.js @@ -4,7 +4,7 @@ require('source-map-support').install(); require('chai').should(); require('sinon'); -var showdown = require('../bootstrap').showdown; +var showdown = require('../../.build/showdown.js'); describe('showdown.Converter', function () { 'use strict'; diff --git a/test/node/showdown.Converter.makeHtml.js b/test/unit/showdown.Converter.makeHtml.js similarity index 98% rename from test/node/showdown.Converter.makeHtml.js rename to test/unit/showdown.Converter.makeHtml.js index adbf0af..9f1591e 100644 --- a/test/node/showdown.Converter.makeHtml.js +++ b/test/unit/showdown.Converter.makeHtml.js @@ -8,7 +8,7 @@ describe('showdown.Converter', function () { require('source-map-support').install(); require('chai').should(); - var showdown = require('../bootstrap').showdown; + var showdown = require('../../.build/showdown.js'); describe('Converter.options extensions', function () { var runCount; diff --git a/test/node/showdown.helpers.js b/test/unit/showdown.helpers.js similarity index 98% rename from test/node/showdown.helpers.js rename to test/unit/showdown.helpers.js index e7678e7..c9e35c8 100644 --- a/test/node/showdown.helpers.js +++ b/test/unit/showdown.helpers.js @@ -5,8 +5,7 @@ /*jshint -W053 */ /*jshint -W010 */ /*jshint -W009 */ -var bootstrap = require('../bootstrap.js'), - showdown = bootstrap.showdown; +var showdown = require('../../.build/showdown.js'); describe('encodeEmailAddress()', function () { 'use strict'; diff --git a/test/node/showdown.js b/test/unit/showdown.js similarity index 97% rename from test/node/showdown.js rename to test/unit/showdown.js index c6e7002..dc297e4 100644 --- a/test/node/showdown.js +++ b/test/unit/showdown.js @@ -1,7 +1,7 @@ require('source-map-support').install(); require('chai').should(); var expect = require('chai').expect, - showdown = require('../bootstrap').showdown; + showdown = require('../../.build/showdown.js'); describe('showdown.options', function () { 'use strict'; @@ -17,7 +17,7 @@ describe('showdown.options', function () { describe('getDefaultOptions()', function () { it('should get default options', function () { - var opts = require('../optionswp').getDefaultOpts(true); + var opts = require('./optionswp.js').getDefaultOpts(true); expect(showdown.getDefaultOptions()).to.be.eql(opts); }); });