public void Compare_StringAndValue_True() { var comparer = new TextComparer(); var result = comparer.Compare("string", "(value)"); Assert.That(result.AreEqual, Is.True); }
public void Compare_1AndBlankPlaceHolder_False() { var comparer = new TextComparer(); var result = comparer.Compare(1, "(blank)"); Assert.That(result.AreEqual, Is.False); }
public void Compare_NullAndBlankPlaceHolder_True() { var comparer = new TextComparer(); var result = comparer.Compare(null, "(blank)"); Assert.That(result.AreEqual, Is.True); }
public void Compare_EmptyAndEmptyPlaceHolder_True() { var comparer = new TextComparer(); var result = comparer.Compare(string.Empty, "(empty)"); Assert.That(result.AreEqual, Is.True); }
public void Compare_NullAndEmptyPlaceHolder_False() { var comparer = new TextComparer(); var result = comparer.Compare(null, "(empty)"); Assert.That(result.AreEqual, Is.False); }
public void Compare_NullAndValue_False() { var comparer = new TextComparer(); var result = comparer.Compare(null, "(value)"); Assert.That(result.AreEqual, Is.False); }
public void Compare_NullAndString_False() { var comparer = new TextComparer(); var result = comparer.Compare(null, "string"); Assert.That(result.AreEqual, Is.False); }
public static List <SearchResult> FindChildren(IntPtr parent, TextComparer className, TextComparer text, int limit) { SearchData sd = new SearchData { limit = limit, className = className, text = text, buffer = new StringBuilder(250), results = new List <SearchResult>() }; var h = GCHandle.Alloc(sd); try { EnumChildWindows(parent, new EnumWindowsProc(EnumWindow), GCHandle.ToIntPtr(h)); } finally { if (h.IsAllocated) { h.Free(); } } return(sd.results); }
public void Compare_NullAndAny_True() { var comparer = new TextComparer(); var result = comparer.Compare(null, "(any)"); Assert.That(result.AreEqual, Is.True); }
private void ProtoTestSingle(IEnumerable <string> testProtoNames, bool ignoreCsProj = false, bool ignoreSnippets = false, bool ignoreUnitTests = false, string grpcServiceConfigPath = null, IEnumerable <string> commonResourcesConfigPaths = null) { // Confirm each generated file is idential to the expected output. // Use `// TEST_START` and `// TEST_END` lines in the expected file to test subsets of output files. // Or include `// TEST_DISABLE` to disable testing of the entire file. var dirName = testProtoNames.First(); var protoPaths = testProtoNames.Select(x => Path.Combine("ProtoTests", dirName, $"{x}.proto")); var files = Run(protoPaths, $"testing.{dirName.ToLowerInvariant()}", grpcServiceConfigPath, commonResourcesConfigPaths); // Check output is present. Assert.NotEmpty(files); // Verify each output file. foreach (var file in files) { if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) || (ignoreSnippets && file.RelativePath.Contains($".Snippets{Path.DirectorySeparatorChar}")) || (ignoreUnitTests && file.RelativePath.Contains($".Tests{Path.DirectorySeparatorChar}"))) { continue; } var expectedFilePath = Path.Combine(Invoker.GeneratorTestsDir, "ProtoTests", dirName, file.RelativePath); TextComparer.CompareText(expectedFilePath, file); } }
internal static void TestOutput(string directory, bool ignoreCsProj = false, bool ignoreConfig = false) { var resourceDirectory = Path.Combine(TestDirectory, "GoldenTestData", directory); var json = File.ReadAllText(Path.Combine(resourceDirectory, "discovery.json")); var features = new Features { ReleaseVersion = "1.49.0", CurrentSupportVersion = "1.49.0", Net40SupportVersion = "1.25.0", PclSupportVersion = "1.10.0" }; PackageEnumStorage enumStorage = PackageEnumStorage.FromJson("{}"); var files = CodeGenerator.Generate(json, features, enumStorage).ToList(); // Check output is present. Assert.NotEmpty(files); foreach (var file in files) { if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) || (ignoreConfig && file.RelativePath.EndsWith(".config"))) { continue; } var expectedFilePath = Path.Combine(TestDirectory, "GoldenTestData", directory, file.RelativePath); TextComparer.CompareText(expectedFilePath, file); } // TODO: Validate enum storage }
static void Main(string[] args) { // Load first document TextExtractor document1 = new TextExtractor(); document1.RegistrationName = "demo"; document1.RegistrationKey = "demo"; document1.LoadDocumentFromFile(@".\comparison1.pdf"); // Load second document TextExtractor document2 = new TextExtractor(); document2.RegistrationName = "demo"; document2.RegistrationKey = "demo"; document2.LoadDocumentFromFile(@".\comparison2.pdf"); // Compare documents TextComparer comparer = new TextComparer(); comparer.RegistrationName = "demo"; comparer.RegistrationKey = "demo"; comparer.Compare(document1, document2); // Generate report comparer.GenerateHtmlReport(@".\report.html"); document1.Dispose(); document2.Dispose(); // Open the report in default browser System.Diagnostics.Process.Start(@".\report.html"); }
public void Compare_StringAndSubstring_False() { var comparer = new TextComparer(); var result = comparer.Compare("string", "str"); Assert.That(result.AreEqual, Is.False); }
public void Compare_StringAndSameStringUppercase_False() { var comparer = new TextComparer(); var result = comparer.Compare("string", "STRING"); Assert.That(result.AreEqual, Is.False); }
public void Compare_IgnoreCase_true(string def) { var tolerance = new TextToleranceFactory().Instantiate(def); var comparer = new TextComparer(); var result = comparer.Compare("Seddryck", "seddryck", tolerance); Assert.That(result.AreEqual, Is.True); }
public void Compare_LargeDifference_False(string def) { var tolerance = new TextToleranceFactory().Instantiate(def); var comparer = new TextComparer(); var result = comparer.Compare("Seddryck", "Undefined", tolerance); Assert.That(result.AreEqual, Is.False); }
public void SuccessEqualsComparison() { var rule = "gray"; var valueToEvaluate = "gray"; var actual = TextComparer.Equals(valueToEvaluate, rule); Assert.True(actual); }
public void FailureEndsWithComparison() { var rule = "boxes"; var valueToEvaluate = "bo"; var actual = TextComparer.EndsWith(valueToEvaluate, rule); Assert.False(actual); }
public void FailureContainsComparison() { var rule = "boxes"; var valueToEvaluate = "not"; var actual = TextComparer.Contains(valueToEvaluate, rule); Assert.False(actual); }
public void SuccessEndsWithComparison() { var rule = "gray"; var valueToEvaluate = "ay"; var actual = TextComparer.EndsWith(rule, valueToEvaluate); Assert.True(actual); }
public void SuccessContainsComparison() { var rule = "gray"; var valueToEvaluate = "a"; var actual = TextComparer.Contains(rule, valueToEvaluate); Assert.True(actual); }
private void calculate_pem_total(ActivityRates activityRates) { if (objectListView_documents.Items.Count > 0 && activityRates.LanguageRateName.Trim() != string.Empty) { numericUpDown_pem_rate_total.Value = 0; label_rate_currency.Text = activityRates.LanguageRateCurrency; var tcc = new TextComparer { Type = TextComparer.ComparisonType.Words }; var dictTcas = new Dictionary <string, List <DocumentActivity> >(); foreach (var documentActivity in DocumentActivities) { if (!dictTcas.ContainsKey(documentActivity.DocumentId)) { dictTcas.Add(documentActivity.DocumentId, new List <DocumentActivity> { documentActivity }); } else { dictTcas[documentActivity.DocumentId].Add(documentActivity); } } foreach (var kvp in dictTcas) { var mergedDocuments = new MergedDocuments(kvp.Value, Activity, tcc, activityRates); if (mergedDocuments.LanguageRate != null) { var exactWordsPem = mergedDocuments.LanguageRate.Rate100 * mergedDocuments.ExactWords; var p99WordsPem = mergedDocuments.LanguageRate.Rate95 * mergedDocuments.Fuzzy99Words; var p94WordsPem = mergedDocuments.LanguageRate.Rate85 * mergedDocuments.Fuzzy94Words; var p84WordsPem = mergedDocuments.LanguageRate.Rate75 * mergedDocuments.Fuzzy84Words; var p74WordsPem = mergedDocuments.LanguageRate.Rate50 * mergedDocuments.Fuzzy74Words; var newWordsPem = mergedDocuments.LanguageRate.RateNew * mergedDocuments.NewWords; var totalWordsPem = exactWordsPem + p99WordsPem + p94WordsPem + p84WordsPem + p74WordsPem + newWordsPem; numericUpDown_pem_rate_total.Value += totalWordsPem; } } } else { numericUpDown_pem_rate_total.Value = 0; label_rate_currency.Text = Tracked.Settings.GetGeneralProperty("defaultCurrency").Value; } check_activity_rate_total(); }
public static List <SearchResult> FindChildren(IntPtr parent, TextComparer className, TextComparer text, int limit) { SearchData sd = new SearchData { limit = limit, className = className, text = text, buffer = new StringBuilder(250), results = new List <SearchResult>() }; EnumChildWindows(parent, new EnumWindowsProc(EnumWindow), ref sd); return(sd.results); }
private void ProtoTestSingle(IEnumerable <string> testProtoNames, string sourceDir = null, string outputDir = null, string package = null, bool ignoreCsProj = false, bool ignoreSnippets = false, bool ignoreUnitTests = false, string grpcServiceConfigPath = null, string serviceConfigPath = null, IEnumerable <string> commonResourcesConfigPaths = null, ApiTransports transports = ApiTransports.Grpc, bool ignoreGapicMetadataFile = true, bool ignoreApiMetadataFile = true, bool ignoreServiceExtensionsFile = true) { // Confirm each generated file is identical to the expected output. // Use `// TEST_START` and `// TEST_END` lines in the expected file to test subsets of output files. // Or include `// TEST_DISABLE` to disable testing of the entire file. sourceDir = sourceDir ?? testProtoNames.First(); outputDir = outputDir ?? sourceDir; var protoPaths = testProtoNames.Select(x => Path.Combine("ProtoTests", sourceDir, $"{x}.proto")); package = package ?? $"testing.{sourceDir.ToLowerInvariant()}"; var files = Run(protoPaths, package, grpcServiceConfigPath, serviceConfigPath, commonResourcesConfigPaths, transports); // Check output is present. Assert.NotEmpty(files); // Write all output files to the temporary directory before validating any. // This makes it easier to see the complete set of outputs. foreach (var file in files) { var pathToWriteTo = Path.Combine(Invoker.ActualGeneratedFilesDir, outputDir, file.RelativePath); Directory.CreateDirectory(Path.GetDirectoryName(pathToWriteTo)); File.WriteAllText(pathToWriteTo, file.Content); } // Verify each output file. foreach (var file in files) { if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) || (ignoreSnippets && file.RelativePath.Contains($".Snippets{Path.DirectorySeparatorChar}")) || (ignoreSnippets && file.RelativePath.Contains($".GeneratedSnippets{Path.DirectorySeparatorChar}")) || (ignoreUnitTests && file.RelativePath.Contains($".Tests{Path.DirectorySeparatorChar}")) || (ignoreGapicMetadataFile && file.RelativePath.EndsWith("gapic_metadata.json")) || (ignoreApiMetadataFile && file.RelativePath.EndsWith(PackageApiMetadataGenerator.FileName)) || (ignoreServiceExtensionsFile && file.RelativePath.EndsWith(ServiceCollectionExtensionsGenerator.FileName))) { continue; } var expectedFilePath = Path.Combine(Invoker.GeneratorTestsDir, "ProtoTests", outputDir, file.RelativePath); TextComparer.CompareText(expectedFilePath, file); } }
internal static void TestOutput(string directory, bool ignoreCsProj = false, bool ignoreConfig = false) { var resourceDirectory = Path.Combine(TestDirectory, "GoldenTestData", directory); var json = File.ReadAllText(Path.Combine(resourceDirectory, "discovery.json")); var files = CodeGenerator.Generate(json).ToList(); // Check output is present. Assert.NotEmpty(files); foreach (var file in files) { if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) || (ignoreConfig && file.RelativePath.EndsWith(".config"))) { continue; } var expectedFilePath = Path.Combine(TestDirectory, "GoldenTestData", directory, file.RelativePath); TextComparer.CompareText(expectedFilePath, file); } }
private void CompareTextButton_Click(object sender, EventArgs e) { Stopwatch s = new Stopwatch(); s.Start(); var oldText = TextDocumentManager.SimplifiedTextFromFile(oldTextFile); var newText = TextDocumentManager.SimplifiedTextFromFile(newTextFile); s.Stop(); textBox2.Text += $"\tReading: {s.Elapsed}" + Environment.NewLine; s.Restart(); var diffResuls = TextComparer.CompareByWords(oldText, newText); //CompareLines(oldText, newText); richTextBox1.ShowDifferences(diffResuls); s.Stop(); textBox2.Text += $"\tComparing: {s.Elapsed}" + Environment.NewLine; }
private bool ExecuteComparer(Assert assert) { switch (assert.Rule) { case ComparerType.REGEX: return(RegexComparer.Compare(assert.Actual, assert.Expect)); case ComparerType.TEXTCONTAINS: return(TextComparer.Contains(assert.Actual, assert.Expect)); case ComparerType.TEXTSTARTSWITH: return(TextComparer.StartsWith(assert.Actual, assert.Expect)); case ComparerType.TEXTENDSWITH: return(TextComparer.EndsWith(assert.Actual, assert.Expect)); case ComparerType.TEXTEQUALS: return(TextComparer.Equals(assert.Actual, assert.Expect)); case ComparerType.ACCEPTALL: return(true); case ComparerType.JSONCONTAINS: return(JsonComparer.DeepContains(assert.Expect, assert.Actual)); case ComparerType.JSONEQUALITY: return(JsonComparer.DeepEqual(assert.Expect, assert.Actual)); case ComparerType.JSONSCHEMA: return(JsonComparer.MatchesSchema(assert.Actual, assert.Expect)); case ComparerType.JSONPATH: return(JsonComparer.PathEqual(assert.Expect, assert.Actual)); default: return(false); } }
private static List <ComparisonUnit> ComparisonUnitDifferences(TrackedDocuments trackedDocument, List <ContentSection> targetSectionsCurrent, KeyStroke keyStroke) { //compare at a character level to understand what was added or removed (no transposition) var textComparer = new TextComparer { Type = TextComparer.ComparisonType.Characters }; var comparisonUnits = textComparer.GetComparisonTextUnits(trackedDocument.ActiveSegment.CurrentTargetSections, targetSectionsCurrent, false); // clean up the removed selection from the current placeholder; we are only looking for what is new from this holder if (trackedDocument.ActiveSegment.CurrentTargetSelection.Length <= 2) { return(comparisonUnits); } try { var indexCharDiffStart = 0; foreach (var comparisonUnit in comparisonUnits) { if (comparisonUnit.Type == ComparisonUnit.ComparisonType.Identical) { indexCharDiffStart += comparisonUnit.Text.Length; } else { break; } } if (indexCharDiffStart > trackedDocument.ActiveSegment.CurrentTargetSelection.Length) { indexCharDiffStart = indexCharDiffStart - trackedDocument.ActiveSegment.CurrentTargetSelection.Length; } var indexCharDiffCounter = 0; foreach (var contentSection in trackedDocument.ActiveSegment.CurrentTargetSections) { indexCharDiffCounter += contentSection.Content.Length; if (indexCharDiffCounter < indexCharDiffStart) { continue; } var indexStartingPointA = indexCharDiffCounter - contentSection.Content.Length; var indexStartingPointB = indexStartingPointA; if (indexCharDiffStart > indexStartingPointA) { indexStartingPointB = indexCharDiffStart - indexStartingPointA; } var indexStartingPointBBefore = contentSection.Content.Substring(0, indexStartingPointB); var indexStartingPointBAfter = contentSection.Content.Substring(indexStartingPointB); if (indexStartingPointBAfter.IndexOf(trackedDocument.ActiveSegment.CurrentTargetSelection, StringComparison.Ordinal) <= -1) { continue; } //remove the selection var indexBefore = indexStartingPointBAfter.IndexOf(keyStroke.Selection, StringComparison.Ordinal); var strBefore = indexStartingPointBAfter.Substring(0, indexBefore); var strAfter = indexStartingPointBAfter.Substring(indexBefore + trackedDocument.ActiveSegment.CurrentTargetSelection.Length); contentSection.Content = indexStartingPointBBefore + strBefore + strAfter; //redo the comparison comparisonUnits = textComparer.GetComparisonTextUnits(trackedDocument.ActiveSegment.CurrentTargetSections, targetSectionsCurrent, false); break; } } catch { //ignore here for now } return(comparisonUnits); }
protected override bool ApplyWithReference(object reference, object x) { var cpr = new TextComparer(); return(cpr.Compare(x, reference).AreEqual); }
private void button_ok_Click(object sender, EventArgs e) { var tcc = new TextComparer { Type = TextComparer.ComparisonType.Words }; #region | create lists | var tpas = new List <Activity>(); foreach (var tp in Tracked.TrackingProjects.TrackerProjects) { foreach (var tpa in tp.Activities) { if (radioButton1.Checked) { #region | ids_selected | if (IdsSelected.Contains(tpa.Id)) { tpas.Add(tpa); } #endregion } else if (radioButton2.Checked) { #region | ids_all | if (IdsAll.Contains(tpa.Id)) { tpas.Add(tpa); } #endregion } else { tpas.Add(tpa); } } } var dasDictList = new List <DocumentActivity>(); foreach (var tpa in tpas) { dasDictList.AddRange(Helper.GetDocumentActivityObjects(tpa)); } #endregion #region | create output data | var xmlDasList = new List <XmlDocumentActivity>(); foreach (var da in dasDictList) { var foundActivity = false; Activity tpa = null; foreach (var _tpa in tpas) { var da1 = da; if (!_tpa.Activities.Exists(a => a.DocumentId == da1.DocumentId)) { continue; } foundActivity = true; tpa = _tpa; break; } if (foundActivity) { foreach (var record in da.Records) { var xmlDas = new XmlDocumentActivity { ProjectId = da.ProjectId, ActivityId = da.ProjectActivityId, ActivityName = tpa.Name, RecordId = record.Id.ToString(), DocumentId = da.DocumentId, DocumentName = da.TranslatableDocument.DocumentName, DocumentStartDate = da.Started, DocumentStopDate = da.Stopped, DocumentTotalSeconds = da.TicksActivity / 10000000, ParagraphId = record.ParagraphId, SegmentId = record.SegmentId, OriginalConfirmationLevel = record.TranslationOrigins.Original.ConfirmationLevel, OriginalTranslationStatus = record.TranslationOrigins.Original.TranslationStatus, OriginalOriginSystem = record.TranslationOrigins.Original.OriginSystem, OriginalOriginType = record.TranslationOrigins.Original.OriginType, UpdatedConfirmationLevel = record.TranslationOrigins.Updated.ConfirmationLevel, UpdatedTranslationStatus = record.TranslationOrigins.Updated.TranslationStatus, UpdatedOriginSystem = record.TranslationOrigins.Updated.OriginSystem, UpdatedOriginType = record.TranslationOrigins.Updated.OriginType, SourceLang = da.TranslatableDocument.SourceLanguage, TargetLang = da.TranslatableDocument.TargetLanguage, SourceText = Helper.GetCompiledSegmentText(record.ContentSections.SourceSections, tpa.ComparisonOptions.IncludeTagsInComparison), TargetText = Helper.GetCompiledSegmentText(record.ContentSections.TargetOriginalSections, tpa.ComparisonOptions.IncludeTagsInComparison), UpdatedText = Helper.GetCompiledSegmentText(record.ContentSections.TargetUpdatedSections, tpa.ComparisonOptions.IncludeTagsInComparison) }; if (xmlDas.OriginalTranslationStatus == string.Empty && xmlDas.TargetText.Trim() == string.Empty) { xmlDas.OriginalTranslationStatus = @"Not Translated"; } xmlDas.StartDate = record.Started; xmlDas.StopDate = record.Stopped; xmlDas.TotalSeconds = record.TicksElapsed / 10000000; xmlDas.TotalMiliseconds = record.TicksElapsed / 10000; var dld = new EditDistance(record, tpa); xmlDas.WordsSource = record.WordCount; xmlDas.EditDistance = dld.Edits; xmlDas.EditDistanceRelative = dld.EditDistanceRelative; xmlDas.PemPercentage = string.Compare(record.TranslationOrigins.Updated.OriginType, @"interactive", StringComparison.OrdinalIgnoreCase) == 0 ? dld.PemPercentage : 100; if (checkBox_includeKeystokeData.Checked) { xmlDas.KeyStrokes = record.TargetKeyStrokes; } if (record.QualityMetrics != null) { xmlDas.QualityMetrics = record.QualityMetrics; } #region | comments | xmlDas.CommentsStr = string.Empty; xmlDas.Comments = record.Comments; if (record.Comments != null && record.Comments.Count > 0) { foreach (var comment in record.Comments) { if (comment.Created != null) { xmlDas.CommentsStr += (xmlDas.CommentsStr.Trim() != string.Empty ? "\r\n\r\n" : string.Empty) + PluginResources.Created_ + Helper.GetStringFromDateTimeMilli(comment.Created.Value) + PluginResources._Severity_ + comment.Severity + PluginResources._Author_ + comment.Author + PluginResources._Comment_ + comment.Content; } } } #endregion xmlDasList.Add(xmlDas); } } } #endregion var exportToFile = new ExportToFile(); if (radioButton_export_to_excel.Checked) { exportToFile.create_excel_report(textBox_folder_path.Text, tpas, xmlDasList); } else if (radioButton_export_to_xml.Checked) { exportToFile.create_xml_report(textBox_folder_path.Text, tpas, xmlDasList); } if (checkBox_view_reprot_when_complete.Checked) { Process.Start(textBox_folder_path.Text); } }