public async Task FillGuessColumnFormatReaderTestAsync() { var setting = new CsvFile { ID = "DetermineColumnFormatFillGuessColumnFormatWriter", FileName = UnitTestInitializeCsv.GetTestPath("BasicCSV.txt"), HasFieldHeader = true, FileFormat = { FieldDelimiter = "," } }; var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, IgnoreIdColumns = false }; var result1 = await setting.FillGuessColumnFormatReaderAsync(false, true, fillGuessSettings, UnitTestInitializeCsv.Token); Assert.AreEqual(5, result1.Count); var result2 = await setting.FillGuessColumnFormatReaderAsync(true, false, fillGuessSettings, UnitTestInitializeCsv.Token); Assert.AreEqual(6, result2.Count); }
public async Task FillGuessColumnFormatIgnoreID() { var setting = new CsvFile { FileName = UnitTestInitializeCsv.GetTestPath("BasicCSV.txt"), FileFormat = { FieldDelimiter = "," }, HasFieldHeader = true }; // setting.TreatTextNullAsNull = true; var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, IgnoreIdColumns = true }; await setting.FillGuessColumnFormatReaderAsync(false, false, fillGuessSettings, UnitTestInitializeCsv.Token); Assert.IsTrue(setting.ColumnCollection.Get("ID") == null || setting.ColumnCollection.Get("ID")?.Convert == false); Assert.AreEqual(DataType.DateTime, setting.ColumnCollection.Get("ExamDate")?.ValueFormat?.DataType); Assert.AreEqual(DataType.Boolean, setting.ColumnCollection.Get("IsNativeLang")?.ValueFormat?.DataType); }
public async Task FillGuessColumnFormatDatePartsAsync() { var setting = new CsvFile { FileName = UnitTestInitializeCsv.GetTestPath("Sessions.txt"), HasFieldHeader = true, ByteOrderMark = true, FileFormat = { FieldDelimiter = "\t" } }; var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, DateParts = true, IgnoreIdColumns = true }; await setting.FillGuessColumnFormatReaderAsync(false, true, fillGuessSettings, UnitTestInitializeCsv.Token); Assert.AreEqual("Start Date", setting.ColumnCollection[0].Name, "Column 1 Start date"); Assert.AreEqual("Start Time", setting.ColumnCollection[1].Name, "Column 2 Start Time"); Assert.AreEqual("Start Time", setting.ColumnCollection[0].TimePart, "TimePart is Start Time"); Assert.AreEqual(DataType.DateTime, setting.ColumnCollection[0].ValueFormat.DataType); Assert.AreEqual("MM/dd/yyyy", setting.ColumnCollection[0].ValueFormat.DateFormat); Assert.AreEqual("HH:mm:ss", setting.ColumnCollection[1].ValueFormat.DateFormat); }
public async Task GetSourceColumnInformationTestAsync2() { using (var dt = UnitTestStatic.GetDataTable()) { using (var reader = new DataTableWrapper(dt)) { var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, IgnoreIdColumns = true }; //await reader.OpenAsync(processDisplay.CancellationToken); var(information, columns) = await reader.FillGuessColumnFormatReaderAsyncReader(fillGuessSettings, new ColumnCollection(), false, true, "<NULL>", UnitTestInitializeCsv.Token); Assert.AreEqual(7, columns.Count(), "Recognized columns"); Assert.AreEqual(8, information.Count, "Information Lines"); var(information2, columns2) = await reader.FillGuessColumnFormatReaderAsyncReader(fillGuessSettings, new ColumnCollection(), true, true, "<NULL>", UnitTestInitializeCsv.Token); Assert.AreEqual(11, columns2.Count()); // Added 4 text columns, Assert.AreEqual(11, information2.Count); } } }
public void NotifyPropertyChangedTest() { var a = new FillGuessSettings { CheckedRecords = 10, CheckNamedDates = true, DectectNumbers = true, DectectPercentage = true, DetectBoolean = true, DetectDateTime = true, DetectGUID = true, FalseValue = "Never", TrueValue = "Always", IgnoreIdColums = false, MinSamplesForIntDate = 5, SampleValues = 5, SerialDateTime = true }; var fired = false; a.PropertyChanged += delegate { fired = true; }; Assert.IsFalse(fired); a.CheckedRecords = 11; Assert.IsTrue(fired); }
public void PropertiesTest() { var test1 = new ViewSettings(); Assert.IsFalse(test1.StoreSettingsByFile); test1.StoreSettingsByFile = true; Assert.IsTrue(test1.StoreSettingsByFile); var test1FillGuessSettings = new FillGuessSettings { CheckNamedDates = true }; test1.FillGuessSettings = test1FillGuessSettings; Assert.AreEqual(test1FillGuessSettings, test1.FillGuessSettings); }
public async Task FillGuessColumnFormatTrailingColumnsAsync() { var setting = new CsvFile { FileName = UnitTestInitializeCsv.GetTestPath("AllFormatsColon.txt"), HasFieldHeader = true, ByteOrderMark = true, FileFormat = { FieldDelimiter = "," } }; setting.ColumnCollection.Clear(); var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, IgnoreIdColumns = true }; await setting.FillGuessColumnFormatReaderAsync(false, true, fillGuessSettings, UnitTestInitializeCsv.Token); // need to identify 5 typed column of the 11 existing Assert.AreEqual(7, setting.ColumnCollection.Count, "Number of recognized Columns"); var v1 = setting.ColumnCollection.First(x => x.Name == "DateTime"); var v2 = setting.ColumnCollection.First(x => x.Name == "Double"); var v3 = setting.ColumnCollection.First(x => x.Name == "Boolean"); Assert.AreEqual( DataType.DateTime, v1.ValueFormat.DataType, "DateTime (Date Time (dd/MM/yyyy))"); // a double will always be read as decimal from Csv Assert.AreEqual( DataType.Numeric, v2.ValueFormat.DataType, "Double (Money (High Precision) (0.#####))"); Assert.AreEqual( DataType.Boolean, v3.ValueFormat.DataType, "Boolean (Boolean)"); }
public async Task FillGuessColumnFormatReaderAsync_Parameter() { var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, IgnoreIdColumns = true }; var setting = new CsvFile { FileName = UnitTestInitializeCsv.GetTestPath("AllFormatsColon.txt"), HasFieldHeader = true, ByteOrderMark = true, FileFormat = { FieldDelimiter = "," }, }; try { // ReSharper disable once AssignNullToNotNullAttribute await DetermineColumnFormat.FillGuessColumnFormatReaderAsync(null, true, true, fillGuessSettings, UnitTestInitializeCsv.Token); } catch (ArgumentNullException) { } catch (Exception ex) { Assert.Fail("Wrong or exception thrown exception is : " + ex.GetType().Name); } try { // ReSharper disable once AssignNullToNotNullAttribute await setting.FillGuessColumnFormatReaderAsync(true, true, null, UnitTestInitializeCsv.Token); } catch (ArgumentNullException) { } catch (Exception ex) { Assert.Fail("Wrong or exception thrown exception is : " + ex.GetType().Name); } }
public async Task FillGuessColumnFormatTextColumnsAsync() { var setting = new CsvFile { FileName = UnitTestInitializeCsv.GetTestPath("AllFormatsColon.txt"), HasFieldHeader = true, ByteOrderMark = true, FileFormat = { FieldDelimiter = "," } }; var fillGuessSettings = new FillGuessSettings { IgnoreIdColumns = true }; await setting.FillGuessColumnFormatReaderAsync(true, true, fillGuessSettings, UnitTestInitializeCsv.Token); Assert.AreEqual(10, setting.ColumnCollection.Count); Assert.AreEqual(DataType.DateTime, setting.ColumnCollection[0].ValueFormat.DataType); Assert.AreEqual(DataType.Integer, setting.ColumnCollection[1].ValueFormat.DataType); Assert.AreEqual(DataType.Numeric, setting.ColumnCollection[2].ValueFormat.DataType); Assert.AreEqual(DataType.String, setting.ColumnCollection[4].ValueFormat.DataType); }
public void CopyToTest() { var a = new FillGuessSettings { CheckedRecords = 10, CheckNamedDates = true, DectectNumbers = true, DectectPercentage = true, DetectBoolean = true, DetectDateTime = true, DetectGUID = true, FalseValue = "Never", TrueValue = "Always", IgnoreIdColums = false, MinSamplesForIntDate = 5, SampleValues = 5, SerialDateTime = true }; var b = new FillGuessSettings { CheckedRecords = 11, CheckNamedDates = !a.CheckNamedDates, DectectNumbers = !a.DectectNumbers, DectectPercentage = !a.DectectPercentage, DetectBoolean = !a.DetectBoolean, DetectDateTime = !a.DetectDateTime, DetectGUID = !a.DetectGUID, FalseValue = "false", TrueValue = "true", IgnoreIdColums = !a.IgnoreIdColums, MinSamplesForIntDate = a.MinSamplesForIntDate + 1, SampleValues = a.SampleValues + 2, SerialDateTime = false }; a.CopyTo(b); Assert.AreNotSame(b, a); a.AllPropertiesEqual(b); }
public async Task TestJson() { var setting = new CsvFile(UnitTestInitializeCsv.GetTestPath("Larger.json")) { JsonFormat = true }; var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, IgnoreIdColumns = true }; Assert.AreEqual(0, setting.ColumnCollection.Count); await setting.FillGuessColumnFormatReaderAsync(false, true, fillGuessSettings, UnitTestInitializeCsv.Token); var expected = new Dictionary <string, DataType> { { "object_id", DataType.Guid }, { "_last_touched_dt_utc", DataType.DateTime }, { "classification_id", DataType.Guid }, { "email_option_id", DataType.Integer } }; foreach (var keyValue in expected) { var indexCol = setting.ColumnCollection.FirstOrDefault(x => x.Name.Equals(keyValue.Key, StringComparison.InvariantCultureIgnoreCase)); Assert.IsNotNull(indexCol, $"Column {keyValue.Key} not recognized"); Assert.AreEqual(keyValue.Value, indexCol.ValueFormat.DataType); } }
public void CloneTest() { var a = new FillGuessSettings { CheckedRecords = 10, CheckNamedDates = true, DectectNumbers = true, DectectPercentage = true, DetectBoolean = true, DetectDateTime = true, DetectGUID = true, FalseValue = "Never", TrueValue = "Always", IgnoreIdColums = false, MinSamplesForIntDate = 5, SampleValues = 5, SerialDateTime = true }; var b = a.Clone(); Assert.AreNotSame(b, a); a.AllPropertiesEqual(b); }
public async Task FillGuessColumnFormatGermanDateAndNumbersAsync() { var setting = new CsvFile { FileName = UnitTestInitializeCsv.GetTestPath("DateAndNumber.csv"), HasFieldHeader = true, FileFormat = { FieldQualifier = "Quote", FieldDelimiter = "Tab" }, CodePageId = 1252 }; var fillGuessSettings = new FillGuessSettings { DetectNumbers = true, DetectDateTime = true, DetectPercentage = true, DetectBoolean = true, DetectGUID = true, IgnoreIdColumns = true }; // setting.TreatTextNullAsNull = true; await setting.FillGuessColumnFormatReaderAsync(false, false, fillGuessSettings, UnitTestInitializeCsv.Token); Assert.IsNotNull(setting.ColumnCollection.Get(@"Betrag Brutto (2 Nachkommastellen)"), "Data Type recognized"); Assert.AreEqual( DataType.Numeric, setting.ColumnCollection.Get(@"Betrag Brutto (2 Nachkommastellen)")?.ValueFormat?.DataType, "Is Numeric"); Assert.AreEqual( ",", setting.ColumnCollection.Get(@"Betrag Brutto (2 Nachkommastellen)")?.ValueFormat?.DecimalSeparator, "Decimal Separator found"); Assert.AreEqual(DataType.DateTime, setting.ColumnCollection.Get(@"Erstelldatum Rechnung")?.ValueFormat?.DataType); }