public void TestParse_ValueBlank_ReturnsNull() { StringColumn column = new StringColumn("name"); string actual = (string)column.Parse(" "); string expected = null; Assert.AreEqual(expected, actual, "The value was not parsed as null."); }
public void TestStringColumnSort() { // StringColumn specific sort tests StringColumn strColumn = new StringColumn("String", 0); Assert.Equal(0, strColumn.NullCount); for (int i = 0; i < 5; i++) { strColumn.Append(null); } Assert.Equal(5, strColumn.NullCount); // Should handle all nulls StringColumn sortedStrColumn = strColumn.Sort() as StringColumn; Assert.Equal(5, sortedStrColumn.NullCount); Assert.Null(sortedStrColumn[0]); for (int i = 0; i < 5; i++) { strColumn.Append(i.ToString()); } Assert.Equal(5, strColumn.NullCount); // Ascending sort sortedStrColumn = strColumn.Sort() as StringColumn; Assert.Equal("0", sortedStrColumn[0]); Assert.Null(sortedStrColumn[9]); // Descending sort sortedStrColumn = strColumn.Sort(false) as StringColumn; Assert.Equal("4", sortedStrColumn[0]); Assert.Null(sortedStrColumn[9]); }
public void TestParse_ValueTrimmed() { StringColumn column = new StringColumn("name"); string actual = (string)column.Parse(" abc 123 "); string expected = "abc 123"; Assert.AreEqual(expected, actual, "The value was not trimmed."); }
public Block CreateBlock(Page page) { _stringColumn = new StringColumn() { ColumnId = columnId }; //Went over the cache limit if (currentSize > MaxSize) { //Clear the current size currentSize = 0; //Start the counter from 0 again counter = 0; //Clear the cache _lookup.Clear(); //Set so that the previous cache should be forgotten _stringColumn.ClearPrevious = true; } page.Strings.Add(_stringColumn); return(new Block() { Strings = new StringRefBlock() }); }
public void TestBinaryOperationsOnStringColumn() { var df = new DataFrame(); BaseColumn stringColumn = new StringColumn("String", Enumerable.Range(0, 10).Select(x => x.ToString())); df.InsertColumn(0, stringColumn); BaseColumn newCol = stringColumn.Equals(5); Assert.Equal(true, newCol[5]); Assert.Equal(false, newCol[0]); BaseColumn stringColumnCopy = new StringColumn("String", Enumerable.Range(0, 10).Select(x => x.ToString())); newCol = stringColumn.Equals(stringColumnCopy); Assert.Equal(true, newCol[5]); Assert.Equal(true, newCol[0]); newCol = stringColumn.NotEquals(5); Assert.Equal(false, newCol[5]); Assert.Equal(true, newCol[0]); newCol = stringColumn.NotEquals(stringColumnCopy); Assert.Equal(false, newCol[5]); Assert.Equal(false, newCol[0]); }
private static StringColumn FindColumn(string columnName, out int index) { StringColumn foundColumn = _list.Columns.First(column => column.Name.Contains(TranslateUtils.Translate(columnName))); index = _list.Columns.ToList().IndexOf(foundColumn); return(foundColumn); }
public void Parse_OnlyWhitespace() { const string value = " "; var parsedValue = new StringColumn().Parse(value); Assert.AreEqual(string.Empty, parsedValue); }
private static void StartNewChunk(List <StringColumn> columns) { for (int columnIndex = 0; columnIndex < columns.Count; columnIndex++) { StringColumn currentColumn = columns.ElementAt(columnIndex); currentColumn.Data.Add(new DataChunk()); } }
public static DataFrame MakeDataFrameWithNumericAndStringColumns(int length) { DataFrame df = MakeDataFrameWithNumericColumns(length); BaseColumn stringColumn = new StringColumn("String", Enumerable.Range(0, length).Select(x => x.ToString())); df.InsertColumn(df.ColumnCount, stringColumn); return(df); }
public void TestParse_ValueBlank_ReturnsNull() { StringColumn column = new StringColumn("name"); string actual = (string)column.Parse(" "); string expected = null; Assert.Equal(expected, actual); }
public void TestNullCounts() { PrimitiveColumn <int> dataFrameColumn1 = new PrimitiveColumn <int>("Int1", Enumerable.Range(0, 10).Select(x => x)); dataFrameColumn1.Append(null); Assert.Equal(1, dataFrameColumn1.NullCount); PrimitiveColumn <int> df2 = new PrimitiveColumn <int>("Int2"); Assert.Equal(0, df2.NullCount); PrimitiveColumn <int> df3 = new PrimitiveColumn <int>("Int3", 10); Assert.Equal(0, df3.NullCount); // Test null counts with assignments on Primitive Columns df2.Append(null); df2.Append(1); Assert.Equal(1, df2.NullCount); df2[1] = 10; Assert.Equal(1, df2.NullCount); df2[1] = null; Assert.Equal(2, df2.NullCount); df2[1] = 5; Assert.Equal(1, df2.NullCount); df2[0] = null; Assert.Equal(1, df2.NullCount); // Test null counts with assignments on String Columns StringColumn strCol = new StringColumn("String", 0); Assert.Equal(0, strCol.NullCount); StringColumn strCol1 = new StringColumn("String1", 5); Assert.Equal(0, strCol1.NullCount); StringColumn strCol2 = new StringColumn("String", Enumerable.Range(0, 10).Select(x => x.ToString())); Assert.Equal(0, strCol2.NullCount); StringColumn strCol3 = new StringColumn("String", Enumerable.Range(0, 10).Select(x => (string)null)); Assert.Equal(10, strCol3.NullCount); strCol.Append(null); Assert.Equal(1, strCol.NullCount); strCol.Append("foo"); Assert.Equal(1, strCol.NullCount); strCol[1] = "bar"; Assert.Equal(1, strCol.NullCount); strCol[1] = null; Assert.Equal(2, strCol.NullCount); strCol[1] = "foo"; Assert.Equal(1, strCol.NullCount); strCol[0] = null; Assert.Equal(1, strCol.NullCount); }
private static void PutAreaOnEnd() { if (_list.Columns.Any(column => column.Name.Contains(TranslateUtils.Translate("Area")))) { StringColumn areaColumn = FindColumn("Area", out int index); _list.Columns.Remove(areaColumn); _list.Columns.Add(areaColumn); } }
public override int GetHashCode() { unchecked { int result = IntColumn; result = (result * 397) ^ BoolColumn.GetHashCode(); result = (result * 397) ^ (StringColumn != null ? StringColumn.GetHashCode() : 0); return(result); } }
private static void SetColumnsInOrder() { StringColumn sizeColumn = ColumnUtils.FindColumn(_list, "Size", out _); StringColumn classColumn = GenerateClassColumn(); StringColumn quantityColumn = ColumnUtils.FindColumn(_list, "Quantity", out _); StringColumn standardColumn = ColumnUtils.FindColumn(_list, "Standard", out _); StringColumn notesColumn = GenerateNotesColumn(); _list.Columns = new List <StringColumn>(new [] { sizeColumn, classColumn, quantityColumn, standardColumn, notesColumn }); }
public void TestColumnDefinitions_GetEnumerable_Explicit() { Schema schema = new Schema(); ColumnDefinition id = new Int32Column("id"); ColumnDefinition name = new StringColumn("name"); ColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id).AddColumn(name).AddColumn(created); IEnumerable collection = schema.ColumnDefinitions; IEnumerator enumerator = collection.GetEnumerator(); }
public void StringColumn_LongValuesAndMerging() { StringColumn column = new StringColumn(); List <string> expected = new List <string>(); StringColumn roundTripped; // Test values just at and above LargeValue limit expected.Add(new string(' ', 2047)); expected.Add(null); expected.Add(string.Empty); expected.Add("Normal"); expected.Add(new string(' ', 2048)); for (int i = 0; i < expected.Count; ++i) { column[i] = expected[i]; } // Verify values properly captured CollectionReadVerifier.VerifySame(expected, column); // Proactively Trim (before serialization) and verify values not corrupted column.Trim(); CollectionReadVerifier.VerifySame(expected, column); // Verify roundtripped column and column not corrupted by serialization roundTripped = TreeSerializer.RoundTrip(column, TreeFormat.Binary); CollectionReadVerifier.VerifySame(expected, roundTripped); CollectionReadVerifier.VerifySame(expected, column); // Set a short value to long and a long value to short, and add another value expected[0] = new string(':', 2400); expected[2] = "MuchShorter"; expected.Add("Simple"); for (int i = 0; i < expected.Count; ++i) { column[i] = expected[i]; } // Verify values read back correctly immediately CollectionReadVerifier.VerifySame(expected, column); // Verify values re-roundtrip again properly (merging old and new immutable values) roundTripped = TreeSerializer.RoundTrip(column, TreeFormat.Binary); CollectionReadVerifier.VerifySame(expected, roundTripped); CollectionReadVerifier.VerifySame(expected, column); // Add a value causing a gap; verify count, new value returned, values in gap defaulted properly column[100] = "Centennial"; Assert.Equal(101, column.Count); Assert.Equal("Centennial", column[100]); Assert.Null(column[99]); }
public void Parse_TrimRightWhitespace() { const string value = " 0239088848 J "; var parsedValue = new StringColumn() { TrimOption = TrimOptions.RightTrim }.Parse(value); Assert.AreEqual(" 0239088848 J", parsedValue); }
public void StringColumn_EmptyCases() { // StringColumns are extremely common in object models, // so having very compact representations for common cases // is really important to file size for small databases. StringColumn column = new StringColumn(); TreeDiagnostics diagnostics; // Empty: { } diagnostics = TreeSerializer.Diagnostics(column, TreeFormat.Binary); Assert.True(diagnostics.Length <= 2); // All null: { IsNull: { Count: 100, Capacity: 100 } } for (int i = 0; i < 100; ++i) { column[i] = null; } CollectionReadVerifier.VerifySame(column, TreeSerializer.RoundTrip(column, TreeFormat.Binary, testDoubleDispose: false)); diagnostics = TreeSerializer.Diagnostics(column, TreeFormat.Binary); Assert.True(1 == diagnostics.Children.Count); Assert.True(diagnostics.Length <= 13); // All empty: Only nulls false written for (int i = 0; i < 100; ++i) { column[i] = ""; } CollectionReadVerifier.VerifySame(column, TreeSerializer.RoundTrip(column, TreeFormat.Binary, testDoubleDispose: false)); diagnostics = TreeSerializer.Diagnostics(column, TreeFormat.Binary); Assert.True(1 == diagnostics.Children.Count); Assert.True(diagnostics.Length <= 13); // No nulls, No Empty: 3b / value (2b end + 1b text) + 4 pages x 4b + 20b overhead for (int i = 0; i < 100; ++i) { column[i] = "-"; } CollectionReadVerifier.VerifySame(column, TreeSerializer.RoundTrip(column, TreeFormat.Binary, testDoubleDispose: false)); diagnostics = TreeSerializer.Diagnostics(column, TreeFormat.Binary); Assert.True(1 == diagnostics.Children.Count); Assert.True(diagnostics.Length <= 336); // Nulls and Non-Nulls; both parts must be written column[50] = null; CollectionReadVerifier.VerifySame(column, TreeSerializer.RoundTrip(column, TreeFormat.Binary, testDoubleDispose: false)); diagnostics = TreeSerializer.Diagnostics(column, TreeFormat.Binary); Assert.True(2 == diagnostics.Children.Count); Assert.True(diagnostics.Length <= 336 + 40); }
public void Parse_TrimLeftWhitespace() { const string value = " . 0239088848 "; var parsedValue = new StringColumn() { TrimOption = TrimOptions.LeftTrim }.Parse(value); Assert.AreEqual(". 0239088848 ", parsedValue); }
public void TestColumnDefinitions_GetEnumerable_Explicit() { FixedLengthSchema schema = new FixedLengthSchema(); ColumnDefinition id = new Int32Column("id"); ColumnDefinition name = new StringColumn("name"); ColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id, 10).AddColumn(name, 25).AddColumn(created, 10); IEnumerable collection = schema.ColumnDefinitions; IEnumerator enumerator = collection.GetEnumerator(); }
public void Parse_TrimsWhitespace() { const string value = " foo bar "; var parsedValue = new StringColumn() { TrimOption = TrimOptions.Trim }.Parse(value); Assert.AreEqual("foo bar", parsedValue); }
public void TestColumnDefinitions_GetEnumerable_Explicit() { SeparatedValueSchema schema = new SeparatedValueSchema(); ColumnDefinition id = new Int32Column("id"); ColumnDefinition name = new StringColumn("name"); ColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id).AddColumn(name).AddColumn(created); IEnumerable collection = schema.ColumnDefinitions; IEnumerator enumerator = collection.GetEnumerator(); }
public void EqualTests(StringColumn first, object second, bool expectedResult, string reason) { _outputHelper.WriteLine($"{nameof(first)} : {first}"); _outputHelper.WriteLine($"{nameof(second)} : {second}"); // Act bool actualResult = first.Equals(second); // Assert actualResult.Should().Be(expectedResult, reason); }
public void TestColumnDefinitions_GetEnumerable_Explicit() { FixedLengthSchema schema = new FixedLengthSchema(); ColumnDefinition id = new Int32Column("id"); ColumnDefinition name = new StringColumn("name"); ColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id, new Window(10)) .AddColumn(name, new Window(25)) .AddColumn(created, new Window(10)); IEnumerable collection = schema.ColumnDefinitions; IEnumerator enumerator = collection.GetEnumerator(); }
public static DataFrame MakeDataFrameWithNumericAndStringColumns(int length, bool withNulls = true) { DataFrame df = MakeDataFrameWithNumericColumns(length, withNulls); BaseColumn stringColumn = new StringColumn("String", Enumerable.Range(0, length).Select(x => x.ToString())); df.InsertColumn(df.ColumnCount, stringColumn); if (withNulls) { stringColumn[length / 2] = null; } return(df); }
public void TestColumnDefinitions_FindByIndex() { Schema schema = new Schema(); ColumnDefinition id = new Int32Column("id"); ColumnDefinition name = new StringColumn("name"); ColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id).AddColumn(name).AddColumn(created); ColumnCollection collection = schema.ColumnDefinitions; Assert.AreSame(id, collection[0], "The first column definition was wrong."); Assert.AreSame(name, collection[1], "The second column definition was wrong."); Assert.AreSame(created, collection[2], "The third column definition was wrong."); }
private static void AddEntry(int entryIndex, ICollection <StringColumn> targetColumns) { int numColumns = targetColumns.Count; for (int columnIndex = 0; columnIndex < numColumns; columnIndex++) { StringColumn column = targetColumns.ElementAt(columnIndex); IEnumerable <string> originalColumn = _list.Columns.ElementAt(columnIndex).GetLastChunk().Entries; string entry = originalColumn.ElementAt(entryIndex); column.GetLastChunk().AddEntry(entry); } }
public static List <StringColumn> GetClonedColumns(AbstractList list) { List <StringColumn> clonedColumns = new List <StringColumn>(); List <StringColumn> oldColumns = list.Columns; foreach (StringColumn oldColumn in oldColumns) { StringColumn newColumn = new StringColumn(oldColumn.Name); newColumn.Data = new List <DataChunk>(); clonedColumns.Add(newColumn); } return(clonedColumns); }
public void TestColumnDefinitions_FindByIndex() { SeparatedValueSchema schema = new SeparatedValueSchema(); ColumnDefinition id = new Int32Column("id"); ColumnDefinition name = new StringColumn("name"); ColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id).AddColumn(name).AddColumn(created); ColumnCollection collection = schema.ColumnDefinitions; Assert.AreSame(id, collection[0], "The first column definition was wrong."); Assert.AreSame(name, collection[1], "The second column definition was wrong."); Assert.AreSame(created, collection[2], "The third column definition was wrong."); }
public void TestColumnDefinitions_FindByIndex() { SeparatedValueSchema schema = new SeparatedValueSchema(); IColumnDefinition id = new Int32Column("id"); IColumnDefinition name = new StringColumn("name"); IColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id).AddColumn(name).AddColumn(created); ColumnCollection collection = schema.ColumnDefinitions; Assert.Same(id, collection[0]); Assert.Same(name, collection[1]); Assert.Same(created, collection[2]); }
private static void ReplaceTextInSize() { StringColumn sizeColumn = ColumnUtils.FindColumn(_list, "Size", out _); StringColumn standardColumn = ColumnUtils.FindColumn(_list, "Standard", out _); StringColumn nameColumn = ColumnUtils.FindColumn(_list, "Name", out _); for (int chunkIndex = 0; chunkIndex < sizeColumn.Data.Count; chunkIndex++) { DataChunk sizeChunk = sizeColumn.Data.ElementAt(chunkIndex); DataChunk standardChunk = standardColumn.Data.ElementAt(chunkIndex); DataChunk nameChunk = nameColumn.Data.ElementAt(chunkIndex); for (int entryIndex = 0; entryIndex < sizeChunk.Entries.Count; entryIndex++) { string sizeEntry = sizeChunk.Entries.ElementAt(entryIndex); string standardEntry = standardChunk.Entries.ElementAt(entryIndex); string nameEntry = nameChunk.Entries.ElementAt(entryIndex); sizeEntry = sizeEntry.Replace("BOLT", IsHVM(standardEntry) ? "HVM" : "M") .Replace("NUT", "Nakrętka M") .Replace("WASHER", "Podkładka"); while (sizeEntry.Contains(".0")) { sizeEntry = sizeEntry.Replace(".0", "."); } sizeEntry = sizeEntry.Replace(".", string.Empty); if (nameEntry.Contains("HILTI")) { string sizePrefix = nameEntry.Split(" ").ElementAt(1); sizeEntry = sizePrefix + " " + sizeEntry; standardChunk.Entries.Insert(entryIndex, "Kotew HILTI"); standardChunk.Entries.RemoveAt(entryIndex + 1); } if (nameEntry.Contains("ANCHORBAR")) { standardChunk.Entries.Insert(entryIndex, "Pręt gwintowany"); standardChunk.Entries.RemoveAt(entryIndex + 1); } sizeChunk.Entries.Insert(entryIndex, sizeEntry); sizeChunk.Entries.RemoveAt(entryIndex + 1); } } }
private static void CalculateTotalWeight() { List <StringColumn> columns = _list.Columns; if (columns.Any(column => column.Name.Contains(TranslateUtils.Translate("Weight")))) { _weightColumn = FindColumn("Weight", out int index); _quantityColumn = FindColumn("No.", out _); _totalWeightColumn = new StringColumn("Waga całkowita (kg)"); columns.Insert(index + 1, _totalWeightColumn); FillTotalWeight(); } }
public void TestColumnDefinitions_FindByIndex() { FixedLengthSchema schema = new FixedLengthSchema(); IColumnDefinition id = new Int32Column("id"); IColumnDefinition name = new StringColumn("name"); IColumnDefinition created = new DateTimeColumn("created"); schema.AddColumn(id, new Window(10)) .AddColumn(name, new Window(25)) .AddColumn(created, new Window(10)); ColumnCollection collection = schema.ColumnDefinitions; Assert.AreSame(id, collection[0]); Assert.AreSame(name, collection[1]); Assert.AreSame(created, collection[2]); }
public StringPropertyMapping(StringColumn column, PropertyInfo property) { this.column = column; this.property = property; }
public ColumnAdder<StringResult> Column(StringColumn column) { return new ColumnAdder<StringResult>(this, column); }
public Length(StringColumn column, string alias = null) : base(column, alias) { }
public InitializedTestTable() : base("MyTable") { DateColumn = new DateColumn(this, "MyDateColumn"); DateTimeColumn = new DateTimeColumn(this, "MyDateTimeColumn"); DecimalColumn = new DecimalColumn(this, "MyDecimalColumn"); DoubleColumn = new DoubleColumn(this, "MyDoubleColumn"); IntColumn = new IntColumn(this, "MyIntColumn"); StringColumn = new StringColumn(this, "MyStringColumn"); }
public void TestCtor_SetsName_LowerCase_Trimmed() { StringColumn column = new StringColumn(" Name "); Assert.AreEqual("name", column.ColumnName, "The name was not set as expected."); }