3import Data.IntMap as IMap
6data Codegen = C | JS deriving (Show, Eq, Ord)
8data CompatCodegen = ANY | C_CG | NODE_CG | NONE
10-- A TestFamily groups tests that share the same theme
11data TestFamily = TestFamily {
12 -- A shorter lowcase name to use in filenames
14 -- A proper name for the test family that will be displayed
16 -- A map of test metadata:
17 -- - The key is the index (>=1 && <1000)
18 -- - The value is the set of compatible code generators,
19 -- or Nothing if the test doesn't depend on a code generator
20 tests :: IntMap (Maybe (Set Codegen))
23toCodegenSet :: CompatCodegen -> Maybe (Set Codegen)
24toCodegenSet compatCodegen = fmap Set.fromList mList where
25 mList = case compatCodegen of
28 NODE_CG -> Just [ JS ]
31testFamilies :: [TestFamily]
32testFamilies = fmap instantiate testFamiliesData where
33 instantiate (id, name, testsData) = TestFamily id name tests where
34 tests = IMap.fromList (fmap makeSetCodegen testsData)
35 makeSetCodegen (index, codegens) = (index, toCodegenSet codegens)
37testFamiliesForCodegen :: Codegen -> [TestFamily]
38testFamiliesForCodegen codegen =
39 fmap (\testFamily -> testFamily {tests = IMap.filter f (tests testFamily)})
42 f mCodegens = case mCodegens of
43 Just codegens -> Set.member codegen codegens
46-- The data to instanciate testFamilies
47-- The first column is the id
48-- The second column is the proper name (the prefix of the subfolders)
49-- The third column is the data for each test
50testFamiliesData :: [(String, String, [(Index, CompatCodegen)])]
85 ("bounded", "Bounded",
90 ("contrib", "Contrib",
92 ("corecords", "Corecords",
95 ("delab", "De-elaboration",
97 ("directives", "Directives",
101 ("disambig", "Disambiguation",
103 ("docs", "Documentation",
115 ("effects", "Effects",
144 ("folding", "Folding",
146 ("idrisdoc", "Idris documentation",
156 ("interactive", "Interactive editing",
173-- FIXME: Re-enable interactive017 once it works with and without node.
174-- FIXME: See https://github.com/idris-lang/Idris-dev/pull/4046#issuecomment-326910042
177 ("interfaces", "Interfaces",
188 ("interpret", "Interpret",
198 ("literate", "Literate programming",
200 ("meta", "Meta-programming",
215 ("prelude", "Prelude",
217 ("primitives", "Primitive types",
223 ("proof", "Theorem proving",
235 ("proofsearch", "Proof search",
239 ("pruviloj", "Pruviloj",
241 ("quasiquote", "Quasiquotations",
248 ("records", "Records",
254 ("reg", "Regressions",
280 ("regression", "Regression",
284 ("sourceLocation", "Source location",
294 ("sugar", "Syntactic sugar",
300 ("syntax", "Syntax extensions",
303 ("tactics", "Tactics",
305 ("totality", "Totality checking",
331 ("tutorial", "Tutorial examples",
339 ("unique", "Uniqueness types",
342 ("universes", "Universes",
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list