public void discotest18()
          {

              using (LambdaInspectorTestor<bool> lib2 = new LambdaInspectorTestor<bool>(o => o.Friend == _Cinq.Friend, _Un))
              {
                  Assert.That(lib2.CachedValue, Is.True);
                  Assert.That(lib2.Check, Is.True);

                  _Cinq.Friend = null;
                  Assert.That(lib2.CachedValue, Is.True);
                  Assert.That(lib2.Check, Is.True);
                  Assert.That(lib2.EVC, Is.EqualTo(0));

                  _Cinq.Friend = _Cinq;
                  Assert.That(lib2.CachedValue, Is.False);
                  Assert.That(lib2.Check, Is.True);
                  //Assert.That(lib2.EVC, Is.EqualTo(0));
                  //Assert.That(lib2.AVEC, Is.EqualTo(1));
                  Assert.That(lib2.EVC, Is.EqualTo(1));

                  lib2.Disconnect();

                  Assert.That(lib2.CachedValue, Is.False);
                  //Assert.That(lib2.EVC, Is.EqualTo(0));
                  //Assert.That(lib2.AVEC, Is.EqualTo(1));
                  Assert.That(lib2.EVC, Is.EqualTo(1));

                  _Cinq.Friend = _Un.Friend;

                  Assert.That(lib2.CachedValue, Is.False);
                  Assert.That(lib2.RealValue, Is.True);
                  //Assert.That(lib2.AVEC, Is.EqualTo(2));
                  //Assert.That(lib2.EVC, Is.EqualTo(0));
                  Assert.That(lib2.EVC, Is.EqualTo(1));

                  _Un.Friend = _Cinq;

                  Assert.That(lib2.CachedValue, Is.False);
                  Assert.That(lib2.RealValue, Is.False);
                  //Assert.That(lib2.AVEC, Is.EqualTo(2));
                  //Assert.That(lib2.EVC, Is.EqualTo(0));
                  Assert.That(lib2.EVC, Is.EqualTo(1));

                  _Cinq.Friend = _Cinq;

                  Assert.That(lib2.CachedValue, Is.False);
                  Assert.That(lib2.RealValue, Is.True);
                  //Assert.That(lib2.AVEC, Is.EqualTo(3));
                  //Assert.That(lib2.EVC, Is.EqualTo(0));
                  Assert.That(lib2.EVC, Is.EqualTo(1));


              }
          }
        public void test20()
        {
            using (LambdaInspectorTestor<string> lib4 = new LambdaInspectorTestor<string>(o => (o.Friend == null) ? string.Empty : o.Friend.Name, _Trois))
            {
                Assert.That(lib4.CachedValue, Is.EqualTo(string.Empty));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(0));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(0));

                _Quatre = new MyObject("d", 3);
                _Trois.Name = "cddd";
                Assert.That(lib4.CachedValue, Is.EqualTo(string.Empty));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(0));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(0));

                _Trois.Friend = _Quatre;
                Assert.That(lib4.CachedValue, Is.EqualTo("d"));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(1));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(1));

                _Quatre.Name = "foooo";
                Assert.That(lib4.CachedValue, Is.EqualTo("foooo"));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(2));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(2));

                _Trois.Friend = _Un;
                Assert.That(lib4.CachedValue, Is.EqualTo(_Un.Name));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(3));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(3));

                _Trois.Friend = _Cinq;
                Assert.That(lib4.CachedValue, Is.EqualTo(_Cinq.Name));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(4));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(4));

                _Un.Name = "tatatattattatattata";
                Assert.That(lib4.CachedValue, Is.EqualTo(_Cinq.Name));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(4));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(4));

                _Trois.Friend = null;
                Assert.That(lib4.CachedValue, Is.EqualTo(string.Empty));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(5));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(5));

                _Cinq.Name = "tatatattattaddtattata";
                Assert.That(lib4.CachedValue, Is.EqualTo(string.Empty));
                Assert.That(lib4.Check, Is.True);
                //Assert.That(lib4.EVC, Is.EqualTo(5));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(5));

                lib4.Disconnect();


                _Trois.Friend = _Cinq;
                Assert.That(lib4.CachedValue, Is.EqualTo(string.Empty));
                Assert.That(lib4.RealValue, Is.EqualTo("tatatattattaddtattata"));
                //Assert.That(lib4.EVC, Is.EqualTo(5));
                //Assert.That(lib4.AVEC, Is.EqualTo(0));
                Assert.That(lib4.EVC, Is.EqualTo(5));


            }
        }
          public void test21()
          {
              _Un.Friend = _Deux;
              _Deux.Friend = _Trois;
              _Trois.Friend = _Quatre;
              _Quatre.Friend = _Cinq;
              _Cinq.Friend = _Un;

              using (LambdaInspectorTestor<string> lib4 = new LambdaInspectorTestor<string>(o => o.Friend.Friend.Name, _Un))
              {
                  Assert.That(lib4.CachedValue, Is.EqualTo("c"));
                  Assert.That(lib4.Check, Is.True);
                  ////Assert.That(lib4.EVC, Is.EqualTo(0));
                  ////Assert.That(lib4.AVEC, Is.EqualTo(0));
                  Assert.That(lib4.EVC, Is.EqualTo(0));

                 _Deux.Friend=_Cinq;

                  Assert.That(lib4.CachedValue, Is.EqualTo("e"));
                  Assert.That(lib4.Check, Is.True);
                  //Assert.That(lib4.EVC, Is.EqualTo(1));
                  //Assert.That(lib4.AVEC, Is.EqualTo(0));
                  Assert.That(lib4.EVC, Is.EqualTo(1));

                  _Cinq.Name = "cab";

                  Assert.That(lib4.CachedValue, Is.EqualTo("cab"));
                  Assert.That(lib4.Check, Is.True);
                  //Assert.That(lib4.EVC, Is.EqualTo(2));
                  //Assert.That(lib4.AVEC, Is.EqualTo(0));
                  Assert.That(lib4.EVC, Is.EqualTo(2));

                  _Un.Friend = _Cinq;

                  Assert.That(lib4.CachedValue, Is.EqualTo("a"));
                  Assert.That(lib4.Check, Is.True);
                  //Assert.That(lib4.EVC, Is.EqualTo(3));
                  //Assert.That(lib4.AVEC, Is.EqualTo(0));
                  Assert.That(lib4.EVC, Is.EqualTo(3));

                  _Deux.Name = "azzzz";
                  Assert.That(lib4.CachedValue, Is.EqualTo("a"));
                  Assert.That(lib4.Check, Is.True);
                  //Assert.That(lib4.EVC, Is.EqualTo(3));
                  //Assert.That(lib4.AVEC, Is.EqualTo(0));
                  Assert.That(lib4.EVC, Is.EqualTo(3));

                  _Deux.Friend = _Trois;
                  Assert.That(lib4.CachedValue, Is.EqualTo("a"));
                  Assert.That(lib4.Check, Is.True);
                  //Assert.That(lib4.EVC, Is.EqualTo(3));
                  //Assert.That(lib4.AVEC, Is.EqualTo(0));
                  Assert.That(lib4.EVC, Is.EqualTo(3));

                  lib4.Disconnect();

              }

          }