public virtual void RaiseOnTestingComplete(PatternResult result) { if (OnTestingComplete != null) { OnTestingComplete(this, result); } }
public static PatternResult <T> Read <T>(IEnumerable <T> ptn, double barpos) where T : IPatternable { var loopLength = Length(ptn); double loopPos = barpos % loopLength; //double loopphase = loopPos / loopLength; PatternResult <T> res = new PatternResult <T>() { note = ptn.First(), phase = 0 }; double start = 0; foreach (var n in ptn) { double end = start + n.length(); if (loopPos > start && loopPos < end) { var p = (loopPos - start) / n.length(); res = new PatternResult <T>() { note = n, phase = p }; } start = end; } return(res); }
void solver_OnTrainingComplete(object arg1, PatternResult arg2) { if (OnTrainingComplete != null) { OnTrainingComplete(this, new OnTrainingCompletedEventArgs(arg2.Error)); } }
void solver_OnTestingComplete(object arg1, PatternResult arg2) { if (OnTestingComplete != null) { OnTestingComplete(this, new OnTestingCompletedEventArgs(arg2.Error, arg2.PercentageCorrect)); } }
void asyncFullTest_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (OnFullTestingComplete != null) { PatternResult result = (PatternResult)e.Result; OnFullTestingComplete(this, new OnTestingCompletedEventArgs(result.Error, result.PercentageCorrect)); } }
public override Symbol VisitPattern([NotNull] PageInterpreterParser.PatternContext context) { var onlyFirstCaptured = context.Any() == null ? true : false; var subsets = context?.subset()?.Accept(this)?.GetValue <Dictionary <SubsetPart, int> >(); for ( int x = page.Contents.GetLength(0) - calculateSubsetOnPage(subsets, SubsetPart.Right); x < calculateSubsetOnPage(subsets, SubsetPart.Left); x++ ) { for ( int y = page.Contents.GetLength(1) - calculateSubsetOnPage(subsets, SubsetPart.Bottom); y < calculateSubsetOnPage(subsets, SubsetPart.Top); y++ ) { if (page.Contents[x, y] == null || page.Contents[x, y].Count == 0) { continue; } pageTraverser = new PageTraverser(page, new PageIndex(x, y)); currentPatternResult = new PatternResult(); try { base.VisitPattern(context); if (currentPatternResult != null) { foreach (var item in currentPatternResult.Result) { Result.AddResult(queryLabel, item.Key, item.Value); } } if (onlyFirstCaptured) { x = page.Contents.GetLength(0); break; } } catch (ParseCanceledException) { currentPatternResult = null; } } } return(new Symbol(SymbolType.Success)); }
public PatternResult Match(Cell[,] mapCells, Cell origin) { var mapW = mapCells.GetLength(0); var mapH = mapCells.GetLength(1); List <Cell> elems = new List <Cell>(); elems.Add(origin); var co = origin.coord; foreach (var off in this.template) { var dst = co + off; if (!Util.IsInside(mapW, mapH, dst.x, dst.y)) { return(null); } if (mapCells[dst.x, dst.y] == null) { return(null); } if (!Cell.IsSameColor(origin, mapCells[dst.x, dst.y])) { return(null); } // check can erase elems.Add(mapCells[dst.x, dst.y]); } // return result var result = new PatternResult(); result.type = this.type; result.cells = elems.ToArray(); return(result); }
public bool TryMatch(PatternSearch pathPatternSearch, string source, [NotNullWhen(true)] out PatternResult?pathPatternResult) { pathPatternSearch .VerifyNotNull(nameof(pathPatternSearch)) .Pattern.VerifyNotEmpty(nameof(pathPatternSearch.Pattern)); pathPatternResult = null; if (source.IsEmpty()) { return(false); } // Tokenized IReadOnlyList <IToken> patternTokens = new StringTokenizer() .Add("{", "}") .Parse(pathPatternSearch.Pattern); var matches = new List <string>(); var names = new List <string>(); var nameValues = new List <string>(); var cursor = new Cursor <IToken>(patternTokens); while (cursor.TryNextValue(out IToken? item)) { if (item.Value == "{") { if (!cursor.TryNextValue(out IToken? propertyName)) { return(false); } names.Add(propertyName.Value); if (!cursor.TryNextValue(out propertyName)) { return(false); } if (propertyName.Value != "}") { return(false); } continue; } matches.Add(item.Value); } int start = 0; var matchCursor = new Cursor <string>(matches); while (matchCursor.TryNextValue(out string?matchItem)) { int indexOf = source.IndexOf(matchItem, start); if (indexOf < 0) { return(false); } if (indexOf > start) { nameValues.Add(source.Substring(start, indexOf - start)); } start = indexOf + matchItem.Length; } if (start < source.Length) { nameValues.Add(source.Substring(start)); } if (names.Count != nameValues.Count) { return(false); } pathPatternResult = new PatternResult { Name = pathPatternSearch.Name, Pattern = pathPatternSearch.Pattern, Source = source, Values = new ConcurrentDictionary <string, string>(names.Zip(nameValues, (o, i) => new KeyValuePair <string, string>(o, i)), StringComparer.OrdinalIgnoreCase), }; return(true); }
private void button10_Click(object sender, EventArgs e) { PatternResult result = cv.Test(cv.LoadSolutionSet("testcv")); richTextBox1.Text = "Test Result: " + result.PercentageCorrect + "% Correct"; }