public static void AddField <ResultType, InputType>(this Records.Records Records, System.String ResultFieldName, System.String InputFieldName, System.Func <InputType, InputType, ResultType> Action) { if (Records.Count > 0) { Records.First.Add(ResultFieldName, default(ResultType)); Records.Map((Record1, Record2) => Record2.Add(ResultFieldName, Action(Record1.Get <InputType>(InputFieldName), Record2.Get <InputType>(InputFieldName)))); } }
public void FirstLevelProperty() { var record = new Record1(Guid.NewGuid(), "Record 1"); var title = "Record 2"; var actual = Remute.Default.With(record, x => x.Title, title); Assert.AreEqual(record.Id, actual.Id); Assert.AreEqual(title, actual.Title); }
public void NestedProperty() { var record1 = new Record1(Guid.NewGuid(), "Record 1"); var record2 = new Record2(record1, true); var id = Guid.NewGuid(); var actual = Remute.Default.With(record2, x => x.Record1.Id, id); Assert.AreEqual(id, actual.Record1.Id); }
private static void CreateDeepCopyOfRecord(Record1 rec) { Record1 copyOfRecord = rec with { FirstName = "Tom" }; Equals(rec, copyOfRecord); }
public void ArrayStructuresToTable() { var data = new ReportData() { CheckpointName = "Current", SimulationName = "Sim1", TableName = "Report", ColumnNames = new string[] { "Col1" }, ColumnUnits = new string[] { null } }; var value1 = new Record1() { a = 1, b = new Record2[] { new Record2() { c = 2 }, new Record2() { c = 3 } } }; var value2 = new Record1() { a = 4, b = new Record2[] { new Record2() { c = 5 }, new Record2() { c = 6 } } }; data.Rows.Add(new List <object>() { value1 }); data.Rows.Add(new List <object>() { value2 }); Assert.AreEqual(Utilities.TableToString(data.ToTable()), "Col1.a,Col1.b(1).c,Col1.b(2).c\r\n" + " 1, 2, 3\r\n" + " 4, 5, 6\r\n"); }
public void ArrayStructuresToTable() { var data = new ReportData() { CheckpointName = "Current", SimulationName = "Sim1", TableName = "Report", ColumnNames = new string[] { "Col1" }, ColumnUnits = new string[] { null } }; var value1 = new Record1() { a = 1, b = new Record2[] { new Record2() { c = 2 }, new Record2() { c = 3 } } }; var value2 = new Record1() { a = 4, b = new Record2[] { new Record2() { c = 5 }, new Record2() { c = 6 } } }; data.Rows.Add(new List <object>() { value1 }); data.Rows.Add(new List <object>() { value2 }); string expected = ReflectionUtilities.GetResourceAsString("UnitTests.Report.ArrayStructuresToTable.Expected.txt"); Assert.AreEqual(Utilities.TableToString(data.ToTable()), expected); }
private static void RecordAfterInheritanceExample(Record1 rec) { Console.WriteLine("RecordAfterInheritanceExample: "); var recordAfterInheritance = new RecordAfterInheritance(1, rec.FirstName, rec.LastName); Console.WriteLine($"RecordAfterInheritance: {rec}"); Console.WriteLine($"{recordAfterInheritance} == {rec} => {recordAfterInheritance == rec}"); }
public void EqualsShouldReturnFalse() { // Arrange var first = new Record1("value 1"); var second = new Record1("value 2"); // Act var result = first.Equals(second); // Assert result.Should().BeFalse(); }
public void OperatorNotEqualToOverloadingShouldReturnFalse() { // Arrange var first = new Record1("value"); var second = new Record1("value"); // Act var result = first != second; // Assert result.Should().BeFalse(); }
public void TestExpressionifyRecord() { var data = new[] { "1", "2", "3" }; var result = data.AsQueryable() .Expressionify() .Select(x => Record1.Create(x)) .ToList(); result.ShouldBe(new Record1[] { new("1"), new("2"), new("3") });
public void MutableDataRecordCanBeModified() { // --- Act var record = new Record1 { Id = 123, DisplayName = "Hello" }; var dataRecord = (IDataRecord)record; // --- Assert record.Id.ShouldEqual(123); record.DisplayName.ShouldEqual("Hello"); dataRecord.IsModified("Id").ShouldBeFalse(); dataRecord.IsModified("DisplayName").ShouldBeFalse(); }
static void Main(string[] args) { Record1 r1a = new("FirstName1", "LastName1"); Record1 r2a = new("FirstName1", "LastName1"); Record1 r3a = new("FirstName3", "LastName3"); class1 c1a = new class1("ClassFirstName1", "ClassLastName1"); class1 c2a = new class1("ClassFirstName1", "ClassLastName1"); class1 c3a = new class1("ClassFirstName3", "ClassLastName3"); Console.WriteLine("Record Type:"); Console.WriteLine($"To String : {r1a} "); Console.WriteLine($"Are the two objects equal? {Equals(r1a,r2a)}"); Console.WriteLine($"Are the two references equal? {ReferenceEquals(r1a, r2a)}"); Console.WriteLine($"Are the two objects ==? {r1a == r2a}"); Console.WriteLine($"Has code of Record 1: {r1a.GetHashCode() }"); Console.WriteLine($"Has code of Record 2: {r2a.GetHashCode() }"); Console.WriteLine($"Has code of Record 3: {r3a.GetHashCode() }"); Console.WriteLine("**************************************************"); Console.WriteLine("Class Type:"); Console.WriteLine($"To String : {c1a} "); Console.WriteLine($"Are the two objects equal? {Equals(c1a, c2a)}"); Console.WriteLine($"Are the two references equal? {ReferenceEquals(c1a, c2a)}"); Console.WriteLine($"Are the two objects ==? {c1a == c2a}"); Console.WriteLine($"Has code of Class 1: {c1a.GetHashCode() }"); Console.WriteLine($"Has code of Class 2: {c2a.GetHashCode() }"); Console.WriteLine($"Has code of Class 3: {c3a.GetHashCode() }"); Console.WriteLine(); // Anonymous tuples var(fn, ln) = r1a; Console.WriteLine($"The value of fn is {fn} and the value of ln is {ln}"); // Deconstructor of record used Record1 r4a = r1a with { FirstName = "NewFirstName1" }; Console.WriteLine($"Updated Record1: {r4a}"); Console.WriteLine(); RecordB rb1 = new RecordB("NewFirstName1", "NewLastName2"); Console.WriteLine($"Record B Instance 1 value: {rb1}"); //Console.WriteLine($"Record B Instance 1 value - expanded: {rb1.FirstName} : {rb1.LastName} - Full Name : {rb1.FullName}"); Console.WriteLine(rb1.SayHello()); Console.ReadLine(); } }
static void Main(string[] args) { Console.WriteLine("Record"); Record1 r1 = new Record1("Prasad", "Honrao"); Console.WriteLine(r1.ToString()); Console.WriteLine("*************"); Console.WriteLine("Class"); Class1 c1 = new Class1("Bill", "Gates"); Console.WriteLine(c1.ToString()); Console.ReadLine(); }
public void CloneWorksAsExpected() { // --- Arrange var original = new Record1 { Id = 23, DisplayName = "Original" }; // --- Act var clone = ((ICloneableRecord <Record1>)original).Clone(); // --- clone.ShouldBeOfType(typeof(Record1)); clone.ShouldNotBeSameAs(original); clone.Id.ShouldEqual(original.Id); clone.DisplayName.ShouldEqual(original.DisplayName); }
public static void Main(string[] args) { var frodoRecord1 = new Record1("Frodo", "Baggins"); var frodoRecord2 = new Record1("Frodo", "Baggins"); var frodoClass1 = new Class1("Frodo", "Baggins"); var frodoClass2 = new Class1("Frodo", "Baggins"); Console.WriteLine("Record Type:"); Console.WriteLine($"To String: {frodoRecord1}"); Console.WriteLine($"Are the two objects equal: {Equals(frodoRecord1, frodoRecord2)}"); Console.WriteLine($"Are the two objects reference equal: {ReferenceEquals(frodoRecord1, frodoRecord2)}"); Console.WriteLine($"Are the two objects ==: {frodoRecord1 == frodoRecord2}"); Console.WriteLine($"Hash code of object a: {frodoRecord1.GetHashCode()}"); Console.WriteLine($"Hash code of object b: {frodoRecord2.GetHashCode()}"); Console.WriteLine(); Console.WriteLine("**********"); Console.WriteLine(); Console.WriteLine("Class Type:"); Console.WriteLine($"To String: {frodoClass1}"); Console.WriteLine($"Are the two objects equal: {Equals(frodoClass1, frodoClass2)}"); Console.WriteLine($"Are the two objects reference equal: {ReferenceEquals(frodoClass1, frodoClass2)}"); Console.WriteLine($"Are the two objects ==: {frodoClass1 == frodoClass2}"); Console.WriteLine($"Hash code of object a: {frodoClass1.GetHashCode()}"); Console.WriteLine($"Hash code of object b: {frodoClass2.GetHashCode()}"); Console.WriteLine(); var (fn, ln) = frodoRecord1; Console.WriteLine($"Deconstructed Name: {fn} {ln}"); var bilboRecord = frodoRecord1 with { FirstName = "Bilbo" }; Console.WriteLine($"Bilbo's Record: {bilboRecord}"); Console.WriteLine(); Record2 pippinRecord = new ("Peregrin", "Took"); Console.WriteLine($"Pippin record value: {pippinRecord}"); Console.WriteLine($"Pippin fn: {pippinRecord.FirstName} ln: {pippinRecord.LastName}"); Console.WriteLine(pippinRecord.SayHello()); } }
public void ModifiedPropertiesAreMarked() { // --- Act var record = new Record1 { Id = 123, DisplayName = "Hello" }; var dataRecord = (IDataRecord)record; dataRecord.SignLoaded(); record.Id = 234; // --- Assert record.Id.ShouldEqual(234); record.DisplayName.ShouldEqual("Hello"); dataRecord.IsModified("Id").ShouldBeTrue(); dataRecord.IsModified("DisplayName").ShouldBeFalse(); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); var record1 = new Record1("Lilo", "Gruberszt"); var record2 = new Record1("Izka", "Marliska"); var record3 = new Record1("Szarlotka", "Krowiejka"); var record4 = new Record1("Mailo", "Pikorz"); var rec = new Record1("Lilo", "Gruberszt"); Equals(rec, record1); Equals(rec, record2); Equals(rec, record3); Equals(rec, record4); RunDeconstructForRecord(rec); CreateDeepCopyOfRecord(rec); RecordWithOverridenProperty(); RecordAfterInheritanceExample(rec); var class1 = new Class1("Lilo", "Gruberszt"); var class2 = new Class1("Izka", "Marliska"); var class3 = new Class1("Szarlotka", "Krowiejka"); var class4 = new Class1("Mailo", "Pikorz"); var c = new Class1("Lilo", "Gruberszt"); Equals(c, class1); Equals(c, class2); Equals(c, class3); Equals(c, class4); class1.Deconstruct(out var fn2, out var ln2); Console.WriteLine($"Deconstructor values => {fn2}, {ln2}"); }
public void ArrayStructuresToTable() { var data = new ReportData() { CheckpointName = "Current", SimulationName = "Sim1", TableName = "Report", ColumnNames = new string[] { "Col1" }, ColumnUnits = new string[] { null } }; var value1 = new Record1() { a = 1, b = new Record2[] { new Record2() { c = 2 }, new Record2() { c = 3 } } }; var value2 = new Record1() { a = 4, b = new Record2[] { new Record2() { c = 5 }, new Record2() { c = 6 } } }; data.Rows.Add(new List <object>() { value1 }); data.Rows.Add(new List <object>() { value2 }); Assert.IsTrue( Utilities.CreateTable(new string[] { "Col1.a", "Col1.b(1).c", "Col1.b(2).c" }, new List <object[]> { new object[] { 1, 2, 3 }, new object[] { 4, 5, 6 } }) .IsSame(data.ToTable())); }
bool Equals(Record1 other) { return(Type == other.Type && string.Equals(Description, other.Description) && Value == other.Value); }
static void Equals(Record1 a, Record1 b) { Console.WriteLine($"{a} == {b} => {a == b}"); }
private static void RunDeconstructForRecord(Record1 rec) { var(fn, ln) = rec; Console.WriteLine($"Deconstructor values => {fn}, {ln}"); }
public override string ToString() { return(IsMatch.ToString() + "\n" + Record1.ToString() + "\n" + Record2.ToString() + "\n"); }