public static void Loyc_Essentials() { MiniTest.RunTests.Run(new ListExtTests()); MiniTest.RunTests.Run(new MathExTests()); MiniTest.RunTests.Run(new UStringTests()); MiniTest.RunTests.Run(new StringExtTests()); MiniTest.RunTests.Run(new HashTagsTests()); MiniTest.RunTests.Run(new LocalizeTests()); MiniTest.RunTests.Run(new SymbolTests()); MiniTest.RunTests.Run(new ThreadExTests()); MiniTest.RunTests.Run(new ListTests<InternalList<int>>(false, delegate(int n) { var l = InternalList<int>.Empty; l.Resize(n); return l; })); MiniTest.RunTests.Run(new ListRangeTests<InternalList<int>>(false, delegate() { return InternalList<int>.Empty; })); MiniTest.RunTests.Run(new ListTests<DList<int>>(false, delegate(int n) { var l = new DList<int>(); l.Resize(n); return l; })); MiniTest.RunTests.Run(new DequeTests<DList<int>>(delegate() { return new DList<int>(); })); MiniTest.RunTests.Run(new ListRangeTests<DList<int>>(false, delegate() { return new DList<int>(); })); MiniTest.RunTests.Run(new GTests()); }
public static int Loyc_Essentials() { return(MiniTest.RunTests.RunMany( new EitherTests(), new BaisTests(), new ListExtTests(), new UStringTests(), new StringExtTests(), new HashTagsTests(), new LocalizeTests(), new SymbolTests(), new ThreadExTests(), new CollectionWithChangeEventsTests(), new ListWrapperTests(_seed), new ListWithChangeEventsTests(_seed), new DictionaryWrapperTests(), new DictionaryWithChangeEventsTests(), new DictionaryWithChangeEventsTests2(), new ListTests <InternalList <int> >(false, delegate(int n) { var l = InternalList <int> .Empty; l.Resize(n); return l; }), new ListRangeTests <InternalList <int> >(false, delegate() { return InternalList <int> .Empty; }), new ListTests <DList <int> >(true, delegate(int n) { var l = new DList <int>(); l.Resize(n); return l; }), new DequeTests <DList <int> >(delegate() { return new DList <int>(); }), new ListRangeTests <DList <int> >(false, delegate() { return new DList <int>(); }), SelectDictionaryFromKeysTests.TestObjects[0], SelectDictionaryFromKeysTests.TestObjects[1], new GTests(), new PrintHelpersTests())); }
public static void Main(string[] args) { // Workaround for MS bug: Assert(false) will not fire in debugger Debug.Listeners.Clear(); Debug.Listeners.Add(new DefaultTraceListener()); Console.WriteLine("Running tests on stable code..."); // Omitted: unit tests that throw & catch exceptions (those are below) // Loyc.Essentials RunTests.Run(new ListExtTests()); RunTests.Run(new MathExTests()); RunTests.Run(new UStringTests()); RunTests.Run(new StringExtTests()); RunTests.Run(new HashTagsTests()); RunTests.Run(new LocalizeTests()); RunTests.Run(new SymbolTests()); RunTests.Run(new ThreadExTests()); RunTests.Run(new ListTests <InternalList <int> >(false, delegate(int n) { var l = InternalList <int> .Empty; l.Resize(n); return(l); })); RunTests.Run(new ListRangeTests <InternalList <int> >(false, delegate() { return(InternalList <int> .Empty); })); RunTests.Run(new ListTests <DList <int> >(false, delegate(int n) { var l = new DList <int>(); l.Resize(n); return(l); })); RunTests.Run(new DequeTests <DList <int> >(delegate() { return(new DList <int>()); })); RunTests.Run(new ListRangeTests <DList <int> >(false, delegate() { return(new DList <int>()); })); // Loyc.Collections RunTests.Run(new CPTrieTests()); RunTests.Run(new SimpleCacheTests()); RunTests.Run(new InvertibleSetTests()); // Test with small node sizes as well as the standard node size, // including the minimum size of 3 (the most problematic size). int seed = 237588399; RunTests.Run(new AListTests(false, seed, 8, 8)); RunTests.Run(new BListTests(false, seed, 3, 3)); RunTests.Run(new BDictionaryTests(false, seed, 6, 6)); RunTests.Run(new SparseAListTests(false, seed, 10, 10)); RunTests.Run(new DequeTests <AList <int> >(delegate() { return(new AList <int>()); })); RunTests.Run(new DequeTests <SparseAList <int> >(delegate() { return(new SparseAList <int>()); })); RunTests.Run(new DictionaryTests <BDictionary <object, object> >(true, true)); RunTests.Run(new ListTests <AList <int> >(false, delegate(int n) { var l = new AList <int>(); l.Resize(n); return(l); })); RunTests.Run(new ListRangeTests <AList <int> >(false, delegate() { return(new AList <int>()); }, 12345)); RunTests.Run(new ListTests <SparseAList <int> >(false, delegate(int n) { var l = new SparseAList <int>(); l.Resize(n); return(l); }, 12345)); RunTests.Run(new ListRangeTests <SparseAList <int> >(false, delegate() { return(new SparseAList <int>()); }, 12345)); // Loyc.Syntax RunTests.Run(new TokenTests()); RunTests.Run(new LesLexerTests()); RunTests.Run(new LesParserTests()); RunTests.Run(new LesPrinterTests()); RunTests.Run(new TokensToTreeTests()); RunTests.Run(new StreamCharSourceTests()); RunTests.Run(new LexerSourceTests_Calculator()); RunTests.Run(new ParserSourceTests_Calculator()); RunTests.Run(new IndentTokenGeneratorTests()); // Loyc.Utilities RunTests.Run(new LineMathTests()); RunTests.Run(new PointMathTests()); RunTests.Run(new Loyc.LLParserGenerator.IntSetTests()); RunTests.Run(new TagsInWListTests()); RunTests.Run(new UGTests()); for (;;) { ConsoleKeyInfo k; Console.WriteLine(); Console.WriteLine("What do you want to do?"); Console.WriteLine("1. Run unit tests that expect exceptions"); Console.WriteLine("2. Run unit tests on unstable code"); Console.WriteLine("9. Benchmarks"); Console.WriteLine("Z. List encodings"); Console.WriteLine("Press ESC or ENTER to Quit"); Console.WriteLine((k = Console.ReadKey(true)).KeyChar); if (k.Key == ConsoleKey.Escape || k.Key == ConsoleKey.Enter) { break; } else if (k.KeyChar == '1') { // Loyc.Essentials RunTests.Run(new GTests()); // Loyc.Utilities RunTests.Run(new GoInterfaceTests()); // Loyc.Collections RunTests.Run(new RWListTests()); RunTests.Run(new WListTests()); RunTests.Run(new RVListTests()); RunTests.Run(new VListTests()); RunTests.Run(new MapTests()); RunTests.Run(new SparseAListTests(true, seed, 8, 4)); RunTests.Run(new SparseAListTests()); RunTests.Run(new AListTests()); RunTests.Run(new BListTests()); RunTests.Run(new BDictionaryTests()); RunTests.Run(new MSetTests()); // derived from MutableSetTests<MSet<STI>, STI> RunTests.Run(new SymbolSetTests()); // derived from MutableSetTests<MSet<Symbol>, Symbol> RunTests.Run(new ImmSetTests()); // tests for Set<T> RunTests.Run(new MapTests()); // derived from DictionaryTests<MMap<object, object>> } else if (k.KeyChar == '2') { RunTests.Run(new KeylessHashtableTests()); } else if (k.KeyChar == 'z' || k.KeyChar == 'Z') { foreach (EncodingInfo inf in Encoding.GetEncodings()) { Console.WriteLine("{0} {1}: {2}", inf.CodePage, inf.Name, inf.DisplayName); } } } }
void ScanTree(PredictionTree tree, Alts alts, DList <Prematched> path) { int oldCount = path.Count; while (path.Count <= tree.Lookahead) { path.Add(new Prematched { Terminals = Anything }); } Prematched pm = path.Last; if (tree.IsAssertionLevel) { foreach (PredictionBranch b in tree.Children) { var old = pm.AndPreds.Clone(); var verified = Enumerable.Aggregate(b.AndPreds, (set1, set2) => (set1.Union(set2))); // usually empty if more than one pm.AndPreds.UnionWith(verified); if (b.Sub.Tree != null) { ScanTree(b.Sub.Tree, alts, path); } else { Debug.Assert(b.Sub.Alt != ErrorAlt); if (b.Sub.Alt == ExitAlt) { _apply.ApplyPrematchData(alts.Next, path); } else { _apply.ApplyPrematchData(alts.Arms[b.Sub.Alt], path); } } pm.AndPreds = old; } } else // !IsAssertionLevel (terminal-matching level) { bool needErrorBranch = LLPG.NeedsErrorBranch(tree, alts); for (int i = 0; i < tree.Children.Count; i++) { PredictionBranch b = tree.Children[i]; IPGTerminalSet set = b.Set; if (!needErrorBranch && i + 1 == tree.Children.Count) { // Add all the default cases set = set.Union(tree.TotalCoverage.Inverted()); } pm.Terminals = set; if (b.Sub.Tree != null) { ScanTree(b.Sub.Tree, alts, path); } else { if (b.Sub.Alt == ExitAlt) { _apply.ApplyPrematchData(alts.Next, path); } else if (b.Sub.Alt != ErrorAlt) { _apply.ApplyPrematchData(alts.Arms[b.Sub.Alt], path); } } } path.PopLast(); } path.Resize(oldCount); }
void ScanTree(PredictionTree tree, Alts alts, DList<Prematched> path) { int oldCount = path.Count; while (path.Count <= tree.Lookahead) path.Add(new Prematched { Terminals = Anything }); Prematched pm = path.Last; if (tree.IsAssertionLevel) { foreach (PredictionBranch b in tree.Children) { var old = pm.AndPreds.Clone(); var verified = Enumerable.Aggregate(b.AndPreds, (set1, set2) => (set1.Union(set2))); // usually empty if more than one pm.AndPreds.UnionWith(verified); if (b.Sub.Tree != null) { ScanTree(b.Sub.Tree, alts, path); } else { Debug.Assert(b.Sub.Alt != ErrorAlt); if (b.Sub.Alt == ExitAlt) _apply.ApplyPrematchData(alts.Next, path); else _apply.ApplyPrematchData(alts.Arms[b.Sub.Alt], path); } pm.AndPreds = old; } } else // !IsAssertionLevel (terminal-matching level) { bool needErrorBranch = LLPG.NeedsErrorBranch(tree, alts); for (int i = 0; i < tree.Children.Count; i++) { PredictionBranch b = tree.Children[i]; IPGTerminalSet set = b.Set; if (!needErrorBranch && i + 1 == tree.Children.Count) // Add all the default cases set = set.Union(tree.TotalCoverage.Inverted()); pm.Terminals = set; if (b.Sub.Tree != null) { ScanTree(b.Sub.Tree, alts, path); } else { if (b.Sub.Alt == ExitAlt) _apply.ApplyPrematchData(alts.Next, path); else if (b.Sub.Alt != ErrorAlt) _apply.ApplyPrematchData(alts.Arms[b.Sub.Alt], path); } } path.PopLast(); } path.Resize(oldCount); }
public static int Loyc_Essentials() { return(MiniTest.RunTests.RunMany( new ListExtTests(), new UStringTests(), new StringExtTests(), new HashTagsTests(), new LocalizeTests(), new SymbolTests(), new ThreadExTests(), new ListTests <InternalList <int> >(false, delegate(int n) { var l = InternalList <int> .Empty; l.Resize(n); return l; }), new ListRangeTests <InternalList <int> >(false, delegate() { return InternalList <int> .Empty; }), new ListTests <DList <int> >(false, delegate(int n) { var l = new DList <int>(); l.Resize(n); return l; }), new DequeTests <DList <int> >(delegate() { return new DList <int>(); }), new ListRangeTests <DList <int> >(false, delegate() { return new DList <int>(); }), new GTests(), new PrintHelpersTests())); }
public static void Loyc_Essentials() { MiniTest.RunTests.Run(new ListExtTests()); MiniTest.RunTests.Run(new MathExTests()); MiniTest.RunTests.Run(new UStringTests()); MiniTest.RunTests.Run(new StringExtTests()); MiniTest.RunTests.Run(new HashTagsTests()); MiniTest.RunTests.Run(new LocalizeTests()); MiniTest.RunTests.Run(new SymbolTests()); MiniTest.RunTests.Run(new ThreadExTests()); MiniTest.RunTests.Run(new ListTests <InternalList <int> >(false, delegate(int n) { var l = InternalList <int> .Empty; l.Resize(n); return(l); })); MiniTest.RunTests.Run(new ListRangeTests <InternalList <int> >(false, delegate() { return(InternalList <int> .Empty); })); MiniTest.RunTests.Run(new ListTests <DList <int> >(false, delegate(int n) { var l = new DList <int>(); l.Resize(n); return(l); })); MiniTest.RunTests.Run(new DequeTests <DList <int> >(delegate() { return(new DList <int>()); })); MiniTest.RunTests.Run(new ListRangeTests <DList <int> >(false, delegate() { return(new DList <int>()); })); MiniTest.RunTests.Run(new GTests()); }
public static void Main(string[] args) { // Workaround for MS bug: Assert(false) will not fire in debugger Debug.Listeners.Clear(); Debug.Listeners.Add( new DefaultTraceListener() ); Console.WriteLine("Running tests on stable code..."); // Omitted: unit tests that throw & catch exceptions (those are below) // Loyc.Essentials RunTests.Run(new ListExtTests()); RunTests.Run(new MathExTests()); RunTests.Run(new UStringTests()); RunTests.Run(new StringExtTests()); RunTests.Run(new HashTagsTests()); RunTests.Run(new LocalizeTests()); RunTests.Run(new SymbolTests()); RunTests.Run(new ThreadExTests()); RunTests.Run(new ListTests<InternalList<int>>(false, delegate(int n) { var l = InternalList<int>.Empty; l.Resize(n); return l; })); RunTests.Run(new ListRangeTests<InternalList<int>>(false, delegate() { return InternalList<int>.Empty; })); RunTests.Run(new ListTests<DList<int>>(false, delegate(int n) { var l = new DList<int>(); l.Resize(n); return l; })); RunTests.Run(new DequeTests<DList<int>>(delegate() { return new DList<int>(); })); RunTests.Run(new ListRangeTests<DList<int>>(false, delegate() { return new DList<int>(); })); // Loyc.Collections RunTests.Run(new CPTrieTests()); RunTests.Run(new SimpleCacheTests()); RunTests.Run(new InvertibleSetTests()); // Test with small node sizes as well as the standard node size, // including the minimum size of 3 (the most problematic size). int seed = 237588399; RunTests.Run(new AListTests(false, seed, 8, 8)); RunTests.Run(new BListTests(false, seed, 3, 3)); RunTests.Run(new BDictionaryTests(false, seed, 6, 6)); RunTests.Run(new SparseAListTests(false, seed, 10, 10)); RunTests.Run(new DequeTests<AList<int>>(delegate() { return new AList<int>(); })); RunTests.Run(new DequeTests<SparseAList<int>>(delegate() { return new SparseAList<int>(); })); RunTests.Run(new DictionaryTests<BDictionary<object, object>>(true, true)); RunTests.Run(new ListTests<AList<int>>(false, delegate(int n) { var l = new AList<int>(); l.Resize(n); return l; })); RunTests.Run(new ListRangeTests<AList<int>>(false, delegate() { return new AList<int>(); }, 12345)); RunTests.Run(new ListTests<SparseAList<int>>(false, delegate(int n) { var l = new SparseAList<int>(); l.Resize(n); return l; }, 12345)); RunTests.Run(new ListRangeTests<SparseAList<int>>(false, delegate() { return new SparseAList<int>(); }, 12345)); // Loyc.Syntax RunTests.Run(new TokenTests()); RunTests.Run(new LesLexerTests()); RunTests.Run(new LesParserTests()); RunTests.Run(new LesPrinterTests()); RunTests.Run(new TokensToTreeTests()); RunTests.Run(new StreamCharSourceTests()); RunTests.Run(new LexerSourceTests_Calculator()); RunTests.Run(new ParserSourceTests_Calculator()); RunTests.Run(new IndentTokenGeneratorTests()); // Loyc.Utilities RunTests.Run(new LineMathTests()); RunTests.Run(new PointMathTests()); RunTests.Run(new Loyc.LLParserGenerator.IntSetTests()); RunTests.Run(new TagsInWListTests()); RunTests.Run(new UGTests()); for(;;) { ConsoleKeyInfo k; Console.WriteLine(); Console.WriteLine("What do you want to do?"); Console.WriteLine("1. Run unit tests that expect exceptions"); Console.WriteLine("2. Run unit tests on unstable code"); Console.WriteLine("9. Benchmarks"); Console.WriteLine("Z. List encodings"); Console.WriteLine("Press ESC or ENTER to Quit"); Console.WriteLine((k = Console.ReadKey(true)).KeyChar); if (k.Key == ConsoleKey.Escape || k.Key == ConsoleKey.Enter) break; else if (k.KeyChar == '1') { // Loyc.Essentials RunTests.Run(new GTests()); // Loyc.Utilities RunTests.Run(new GoInterfaceTests()); // Loyc.Collections RunTests.Run(new RWListTests()); RunTests.Run(new WListTests()); RunTests.Run(new RVListTests()); RunTests.Run(new VListTests()); RunTests.Run(new MapTests()); RunTests.Run(new SparseAListTests(true, seed, 8, 4)); RunTests.Run(new SparseAListTests()); RunTests.Run(new AListTests()); RunTests.Run(new BListTests()); RunTests.Run(new BDictionaryTests()); RunTests.Run(new MSetTests()); // derived from MutableSetTests<MSet<STI>, STI> RunTests.Run(new SymbolSetTests()); // derived from MutableSetTests<MSet<Symbol>, Symbol> RunTests.Run(new ImmSetTests()); // tests for Set<T> RunTests.Run(new MapTests()); // derived from DictionaryTests<MMap<object, object>> } else if (k.KeyChar == '2') { RunTests.Run(new KeylessHashtableTests()); } else if (k.KeyChar == 'z' || k.KeyChar == 'Z') { foreach (EncodingInfo inf in Encoding.GetEncodings()) Console.WriteLine("{0} {1}: {2}", inf.CodePage, inf.Name, inf.DisplayName); } } }