public void ComplexLeftSide()
        {
            var list = new IndexableCollection <PocoClass>();

            var subList = list.Where(x => x.DemoStringIndexed + x.DemoStringNonIndexed == "foo");

            Assert.AreEqual(0, subList.Count());
        }
        public void IndexingWorksWhenHashCodeIsAlwaysSame()
        {
            var list = new IndexableCollection <DecoratedClass>(
                new List <DecoratedClass>
            {
                new DecoratedClass {
                    HashCodeAlwaysSame = new SillyHashedCodeReturnerClass()
                },
                new DecoratedClass {
                    HashCodeAlwaysSame = new SillyHashedCodeReturnerClass()
                },
                new DecoratedClass {
                    HashCodeAlwaysSame = new SillyHashedCodeReturnerClass()
                }
            });

            // reference equals
            Assert.AreEqual(1, list.Where(silly => silly.HashCodeAlwaysSame == list[0].HashCodeAlwaysSame).Count());

            // hashcode equals (equals 호출)
            Assert.AreEqual(3, list.Where(silly => Equals(silly.HashCodeAlwaysSame, list[1].HashCodeAlwaysSame)).Count());
        }