public void VerifyNestedClassesSimilarMembers()
        {
            var h1 = HashObject.Hash64(new { P1 = 123, P2 = 654 });
            var h2 = HashObject.Hash64(new { P1 = 123, P2 = new { SP1 = 654 } });

            Assert.AreEqual(h1, h2);
        }
示例#2
0
        public void Perf10000()
        {
            var o = new MyClass3()
            {
                P1 = 3214, P3 = 563432167869876L, P4 = "hello world!"
            };

            for (int i = 0; i < 10000; i++)
            {
                Assert.AreEqual(5800321734187549122UL, HashObject.Hash64(o));
            }
        }
示例#3
0
        public void Perf10000_threadsafety()
        {
            var passed = Enumerable.Range(0, 10000)
                         .AsParallel()
                         .Select(i => new MyClass3()
            {
                P1 = 3214, P3 = 563432167869876L, P4 = "hello world!"
            })
                         .All(o => HashObject.Hash64(o) == 5800321734187549122UL)
            ;

            Assert.IsTrue(passed);
        }
示例#4
0
        public void Verify()
        {
            Assert.AreEqual(11160318154034397263UL, HashObject.Hash64(new { P1 = (string)null }));
            Assert.AreEqual(11160318154034397263UL, HashObject.Hash64(new { P1 = (MyClass4)null }));

            Assert.AreEqual(5161771770385946686UL, HashObject.Hash64(new { P1 = true }));
            Assert.AreEqual(6831060280857550628UL, HashObject.Hash64(new { P1 = (byte)5 }));
            Assert.AreEqual(6635462465573064060UL, HashObject.Hash64(new { P1 = (sbyte)-5 }));
            Assert.AreEqual(17632198867199723397UL, HashObject.Hash64(new { P1 = (ushort)300 }));
            Assert.AreEqual(14828412535119066885UL, HashObject.Hash64(new { P1 = (short)125 }));
            Assert.AreEqual(15889518867509351608UL, HashObject.Hash64(new { P1 = -2154654 }));
            Assert.AreEqual(13504660158532017398UL, HashObject.Hash64(new { P1 = 79846u }));
            Assert.AreEqual(17184136070396980929UL, HashObject.Hash64(new { P1 = 6543685498321218174ul }));
            Assert.AreEqual(13597913617216260015UL, HashObject.Hash64(new { P1 = -216549867321456L }));
            Assert.AreEqual(10964267548211513180UL, HashObject.Hash64(new { P1 = 'a' }));
            Assert.AreEqual(8088892088076493022UL, HashObject.Hash64(new { P1 = 321654.32165497D }));
            Assert.AreEqual(10869235659710969429UL, HashObject.Hash64(new { P1 = 147852369F }));
            Assert.AreEqual(12485759631462869615UL, HashObject.Hash64(new { P1 = 213.02545989002144M }));
            Assert.AreEqual(5454119810501579372UL, HashObject.Hash64(new { P1 = new DateTime(2018, 1, 5, 12, 32, 45, 321, DateTimeKind.Local) }));
            Assert.AreEqual(HashObject.Hash64(new { P1 = MyIntEnum.c }), HashObject.Hash64(new { P1 = 3L }));
            Assert.AreEqual(HashObject.Hash64(new { P1 = MyLongEnum.c }), HashObject.Hash64(new { P1 = 3L }));
            Assert.AreEqual(HashObject.Hash64(new { P1 = MyULongEnum.c }), HashObject.Hash64(new { P1 = 3L }));
            Assert.AreEqual(HashObject.Hash64(new { P1 = MyByteEnum.c }), HashObject.Hash64(new { P1 = 3L }));

            Assert.AreEqual(14924216523195090866UL, HashObject.Hash64(new MyClass()
            {
                P1 = 5, P2 = 8
            }));
            Assert.AreEqual(15547530592771145767UL, HashObject.Hash64(new MyClass()
            {
                P1 = 3214, P2 = -98763524
            }));
            Assert.AreEqual(3873731951615198575UL, HashObject.Hash64(new MyClass2()
            {
                P1 = 3214, P2 = -98763524, P3 = -8451
            }));
            Assert.AreEqual(430739925859802484UL, HashObject.Hash64(new MyClass2()
            {
                P1 = 3214, P2 = -98763524, P3 = 563432167869876L
            }));
            Assert.AreEqual(16186487976295417620UL, HashObject.Hash64(new MyClass3()
            {
                P1 = 3214, P3 = 563432167869876L, P4 = "Hello World!"
            }));
            Assert.AreEqual(5800321734187549122UL, HashObject.Hash64(new MyClass3()
            {
                P1 = 3214, P3 = 563432167869876L, P4 = "hello world!"
            }));
            Assert.AreEqual(14034018172463916860UL, HashObject.Hash64(new MyClass4()));
        }
 public void VerifyNestedClassWithList()
 {
     Assert.AreEqual(HashObject.Hash64(new { P1 = 1, P27 = 27, P35 = 35, P41 = 41, P56 = 56 }), HashObject.Hash64(new MyClassWithList()));
     Assert.AreEqual(HashObject.Hash64(new { P1 = 1, P27 = 27, P35 = 35, P41 = 41, P56 = 56 }), HashObject.Hash64(new { P1 = new List <int> {
                                                                                                                            1, 27
                                                                                                                        }, P2 = new { P3 = new List <int> {
                                                                                                                                          35
                                                                                                                                      }, P41 = 41, P56 = 56 } }));
     Assert.AreEqual(HashObject.Hash64(new { P1 = 1, P27 = 27, P35 = 35, P41 = 41, P56 = 56 }), HashObject.Hash64(new { P1 = new List <MyClassWithList>()
                                                                                                                        {
                                                                                                                            new MyClassWithList()
                                                                                                                        } }));
     Assert.AreEqual(HashObject.Hash64(new { P1 = new MyClassWithList().P1, P2 = new MyClassWithList().P1, P3 = new MyClassWithList().P1 }), HashObject.Hash64(new { P1 = new List <MyClassWithList>()
                                                                                                                                                                     {
                                                                                                                                                                         new MyClassWithList(), new MyClassWithList(), new MyClassWithList()
                                                                                                                                                                     } }));
     Assert.AreEqual(HashObject.Hash64(new { P1 = new List <IList <int> > {
                                                 new MyClassWithList().P1, new MyClassWithList().P1, new MyClassWithList().P1
                                             } }), HashObject.Hash64(new { P1 = new List <MyClassWithList>()
                                                                           {
                                                                               new MyClassWithList(), new MyClassWithList(), new MyClassWithList()
                                                                           } }));
 }
 public void VerifyDictionary()
 {
     Assert.AreEqual(HashObject.Hash64(new { P1 = 1, P35 = 35, P27 = 27, P41 = 41 }), HashObject.Hash64(new Dictionary <int, int> {
         { 1, 27 }, { 35, 41 }
     }));
 }
        public void VerifyNestedClassesBasic()
        {
            var h2 = HashObject.Hash64(new { P1 = 123, P2 = new { SP1 = 654 } });

            Assert.AreEqual(7817622667888063637UL, h2);
        }