Permalink
Browse files

Created gh-pages branch via GitHub

  • Loading branch information...
0 parents commit 29504c1789b83e3720db349d55b0e8ae8da983cd @finnsson committed Apr 4, 2012
Showing with 501 additions and 0 deletions.
  1. +160 −0 index.html
  2. +20 −0 javascripts/scale.fix.js
  3. +1 −0 params.json
  4. +69 −0 stylesheets/pygment_trac.css
  5. +251 −0 stylesheets/styles.css
@@ -0,0 +1,160 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="chrome=1">
+ <title>Test-generator by finnsson</title>
+
+ <link rel="stylesheet" href="stylesheets/styles.css">
+ <link rel="stylesheet" href="stylesheets/pygment_trac.css">
+ <script src="javascripts/scale.fix.js"></script>
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ </head>
+ <body>
+ <div class="wrapper">
+ <header>
+ <h1>Test-generator</h1>
+ <p>Automagically (using Template Haskell) generates the Haskell-code you need when using HUnit</p>
+ <p class="view"><a href="https://github.com/finnsson/test-generator">View the Project on GitHub <small>finnsson/test-generator</small></a></p>
+ <ul>
+ <li><a href="https://github.com/finnsson/test-generator/zipball/master">Download <strong>ZIP File</strong></a></li>
+ <li><a href="https://github.com/finnsson/test-generator/tarball/master">Download <strong>TAR Ball</strong></a></li>
+ <li><a href="https://github.com/finnsson/test-generator">Fork On <strong>GitHub</strong></a></li>
+ </ul>
+ </header>
+ <section>
+ <h1>test-framework-th</h1>
+
+<p>Haskell-module to automagically generate repetetive code when writing HUnit/Quickcheck/Quickcheck2-tests.</p>
+
+<h2>testGroupGenerator</h2>
+
+<h3>signature</h3>
+
+<pre><code>testGroupGenerator :: ExpQ
+</code></pre>
+
+<h3>usage</h3>
+
+<pre><code>myTestGroup = $(testGroupGenerator)
+</code></pre>
+
+<h3>example</h3>
+
+<pre><code>-- file SomeModule.hs
+{-# LANGUAGE TemplateHaskell #-}
+module SomeModule where
+import Test.Framework.TH
+import Test.Framework
+import Test.HUnit
+import Test.Framework.Providers.HUnit
+import Test.Framework.Providers.QuickCheck2
+
+-- observe this line!
+fooTestGroup = $(testGroupGenerator)
+main = defaultMain [fooTestGroup]
+case_1 = do 1 @=? 1
+case_2 = do 2 @=? 2
+prop_reverse xs = reverse (reverse xs) == xs
+ where types = xs::[Int]
+</code></pre>
+
+<p>is the same as</p>
+
+<pre><code>-- file SomeModule.hs
+{-# LANGUAGE TemplateHaskell #-}
+module SomeModule where
+import Test.Framework.TH
+import Test.Framework
+import Test.HUnit
+import Test.Framework.Providers.HUnit
+import Test.Framework.Providers.QuickCheck2
+
+-- observe this line!
+fooTestGroup = testGroup "SomeModule" [testCase "1" case_1, testCase "2" case_2, testProperty "reverse" prop_reverse]
+main = defaultMain [fooTestGroup]
+case_1 = do 1 @=? 1
+case_2 = do 2 @=? 2
+prop_reverse xs = reverse (reverse xs) == xs
+ where types = xs::[Int]
+</code></pre>
+
+<h2>defaultMainGenerator</h2>
+
+<h3>signature</h3>
+
+<pre><code>defaultMainGenerator :: ExpQ
+</code></pre>
+
+<h3>usage</h3>
+
+<pre><code>main = $(defaultMainGenerator)
+</code></pre>
+
+<h3>example</h3>
+
+<pre><code>-- file SomeModule.hs
+{-# LANGUAGE TemplateHaskell #-}
+module SomeModule where
+import Test.Framework.TH
+import Test.Framework
+import Test.HUnit
+import Test.Framework.Providers.HUnit
+import Test.Framework.Providers.QuickCheck2
+
+-- observe this line!
+main = $(defaultMainGenerator)
+case_1 = do 1 @=? 1
+case_2 = do 2 @=? 2
+prop_reverse xs = reverse (reverse xs) == xs
+ where types = xs::[Int]
+</code></pre>
+
+<p>will automagically extract prop_reverse, case_1 and case_2 and run them as well as present them as belonging to the testGroup 'SomeModule'. The above code is the same as</p>
+
+<pre><code>-- file SomeModule.hs
+{-# LANGUAGE TemplateHaskell #-}
+module SomeModule where
+import Test.Framework.TH
+import Test.Framework
+import Test.HUnit
+import Test.Framework.Providers.HUnit
+import Test.Framework.Providers.QuickCheck2
+
+-- observe this line!
+main =
+ defaultMain [
+ testGroup "SomeModule" [ testCase "1" case_1, testCase "2" case_2, testProperty "reverse" prop_reverse]
+ ]
+
+case_1 = do 1 @=? 1
+case_2 = do 2 @=? 2
+prop_reverse xs = reverse (reverse xs) == xs
+ where types = xs::[Int]
+</code></pre>
+
+<p>and will give the following result</p>
+
+<pre><code>me: runghc MyModuleTest.hs
+MyModuleTest:
+ reverse: [OK, passed 100 tests]
+ 1: [OK]
+ 2: [OK]
+
+ Properties Test Cases Total
+Passed 1 2 3
+Failed 0 0 0
+Total 1 2 3
+</code></pre>
+ </section>
+ <footer>
+ <p>This project is maintained by <a href="https://github.com/finnsson">finnsson</a></p>
+ <p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
+ </footer>
+ </div>
+ <!--[if !IE]><script>fixScale(document);</script><!--<![endif]-->
+ </body>
+</html>
@@ -0,0 +1,20 @@
+fixScale = function(doc) {
+
+ var addEvent = 'addEventListener',
+ type = 'gesturestart',
+ qsa = 'querySelectorAll',
+ scales = [1, 1],
+ meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : [];
+
+ function fix() {
+ meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1];
+ doc.removeEventListener(type, fix, true);
+ }
+
+ if ((meta = meta[meta.length - 1]) && addEvent in doc) {
+ fix();
+ scales = [.25, 1.6];
+ doc[addEvent](type, fix, true);
+ }
+
+};
@@ -0,0 +1 @@
+{"name":"Test-generator","body":"# test-framework-th\r\n\r\nHaskell-module to automagically generate repetetive code when writing HUnit/Quickcheck/Quickcheck2-tests.\r\n\r\n## testGroupGenerator\r\n\r\n### signature\r\n\r\n testGroupGenerator :: ExpQ\r\n\r\n### usage\r\n\r\n myTestGroup = $(testGroupGenerator)\r\n\r\n### example\r\n\r\n -- file SomeModule.hs\r\n {-# LANGUAGE TemplateHaskell #-}\r\n module SomeModule where\r\n import Test.Framework.TH\r\n import Test.Framework\r\n import Test.HUnit\r\n import Test.Framework.Providers.HUnit\r\n import Test.Framework.Providers.QuickCheck2\r\n \r\n -- observe this line! \r\n fooTestGroup = $(testGroupGenerator)\r\n main = defaultMain [fooTestGroup]\r\n case_1 = do 1 @=? 1\r\n case_2 = do 2 @=? 2\r\n prop_reverse xs = reverse (reverse xs) == xs\r\n where types = xs::[Int]\r\n\r\nis the same as\r\n\r\n\r\n -- file SomeModule.hs\r\n {-# LANGUAGE TemplateHaskell #-}\r\n module SomeModule where\r\n import Test.Framework.TH\r\n import Test.Framework\r\n import Test.HUnit\r\n import Test.Framework.Providers.HUnit\r\n import Test.Framework.Providers.QuickCheck2\r\n \r\n -- observe this line!\r\n fooTestGroup = testGroup \"SomeModule\" [testCase \"1\" case_1, testCase \"2\" case_2, testProperty \"reverse\" prop_reverse]\r\n main = defaultMain [fooTestGroup]\r\n case_1 = do 1 @=? 1\r\n case_2 = do 2 @=? 2\r\n prop_reverse xs = reverse (reverse xs) == xs\r\n where types = xs::[Int]\r\n\r\n\r\n## defaultMainGenerator\r\n\r\n### signature\r\n\r\n defaultMainGenerator :: ExpQ\r\n\r\n### usage\r\n\r\n main = $(defaultMainGenerator)\r\n\r\n### example\r\n\r\n\r\n -- file SomeModule.hs\r\n {-# LANGUAGE TemplateHaskell #-}\r\n module SomeModule where\r\n import Test.Framework.TH\r\n import Test.Framework\r\n import Test.HUnit\r\n import Test.Framework.Providers.HUnit\r\n import Test.Framework.Providers.QuickCheck2\r\n \r\n -- observe this line! \r\n main = $(defaultMainGenerator)\r\n case_1 = do 1 @=? 1\r\n case_2 = do 2 @=? 2\r\n prop_reverse xs = reverse (reverse xs) == xs\r\n where types = xs::[Int]\r\n\r\n\r\nwill automagically extract prop_reverse, case_1 and case_2 and run them as well as present them as belonging to the testGroup 'SomeModule'. The above code is the same as\r\n\r\n -- file SomeModule.hs\r\n {-# LANGUAGE TemplateHaskell #-}\r\n module SomeModule where\r\n import Test.Framework.TH\r\n import Test.Framework\r\n import Test.HUnit\r\n import Test.Framework.Providers.HUnit\r\n import Test.Framework.Providers.QuickCheck2\r\n \r\n -- observe this line! \r\n main =\r\n defaultMain [\r\n testGroup \"SomeModule\" [ testCase \"1\" case_1, testCase \"2\" case_2, testProperty \"reverse\" prop_reverse]\r\n ]\r\n\r\n case_1 = do 1 @=? 1\r\n case_2 = do 2 @=? 2\r\n prop_reverse xs = reverse (reverse xs) == xs\r\n where types = xs::[Int]\r\n\r\n\r\nand will give the following result\r\n\r\n me: runghc MyModuleTest.hs \r\n MyModuleTest:\r\n reverse: [OK, passed 100 tests]\r\n 1: [OK]\r\n 2: [OK]\r\n \r\n Properties Test Cases Total \r\n Passed 1 2 3 \r\n Failed 0 0 0 \r\n Total 1 2 3 \r\n","tagline":"Automagically (using Template Haskell) generates the Haskell-code you need when using HUnit","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
@@ -0,0 +1,69 @@
+.highlight { background: #ffffff; }
+.highlight .c { color: #999988; font-style: italic } /* Comment */
+.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.highlight .k { font-weight: bold } /* Keyword */
+.highlight .o { font-weight: bold } /* Operator */
+.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #aa0000 } /* Generic.Error */
+.highlight .gh { color: #999999 } /* Generic.Heading */
+.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #555555 } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
+.highlight .gt { color: #aa0000 } /* Generic.Traceback */
+.highlight .kc { font-weight: bold } /* Keyword.Constant */
+.highlight .kd { font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
+.highlight .kr { font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #009999 } /* Literal.Number */
+.highlight .s { color: #d14 } /* Literal.String */
+.highlight .na { color: #008080 } /* Name.Attribute */
+.highlight .nb { color: #0086B3 } /* Name.Builtin */
+.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
+.highlight .no { color: #008080 } /* Name.Constant */
+.highlight .ni { color: #800080 } /* Name.Entity */
+.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
+.highlight .nn { color: #555555 } /* Name.Namespace */
+.highlight .nt { color: #000080 } /* Name.Tag */
+.highlight .nv { color: #008080 } /* Name.Variable */
+.highlight .ow { font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #009999 } /* Literal.Number.Float */
+.highlight .mh { color: #009999 } /* Literal.Number.Hex */
+.highlight .mi { color: #009999 } /* Literal.Number.Integer */
+.highlight .mo { color: #009999 } /* Literal.Number.Oct */
+.highlight .sb { color: #d14 } /* Literal.String.Backtick */
+.highlight .sc { color: #d14 } /* Literal.String.Char */
+.highlight .sd { color: #d14 } /* Literal.String.Doc */
+.highlight .s2 { color: #d14 } /* Literal.String.Double */
+.highlight .se { color: #d14 } /* Literal.String.Escape */
+.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
+.highlight .si { color: #d14 } /* Literal.String.Interpol */
+.highlight .sx { color: #d14 } /* Literal.String.Other */
+.highlight .sr { color: #009926 } /* Literal.String.Regex */
+.highlight .s1 { color: #d14 } /* Literal.String.Single */
+.highlight .ss { color: #990073 } /* Literal.String.Symbol */
+.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #008080 } /* Name.Variable.Class */
+.highlight .vg { color: #008080 } /* Name.Variable.Global */
+.highlight .vi { color: #008080 } /* Name.Variable.Instance */
+.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
Oops, something went wrong.

0 comments on commit 29504c1

Please sign in to comment.