Ejemplo n.º 1
0
        public void ComplexKeyHashingStrategy_3(int CNT, double k)
        {
            using(var store = new CacheStore(null))
            {
              var strat = new ComplexKeyHashingStrategy(store);

              for(var i=0; i<CNT; i++)
                strat.Put("t1", "ThisIsAKeyLongerThanEight-"+i, new businessObject { ID = i,  Name = "Gagarin-"+i,   IsGood = true});

              var collision = 0;
              for(var i=0; i<CNT; i++)
              {
                Assert.IsNull( strat.Get("t1", "ThisAKeyLongerThanEight-"+i) );
                Assert.IsNull( strat.Get("t1", "ThusIsAKeyLongerThanEight-"+i) );
                Assert.IsNull( strat.Get("t1", "ThisIsAKeyLongerEightThan-"+i) );
                var o =  strat.Get("t1", "ThisIsAKeyLongerThanEight-"+i);

                if (o!=null)
                {
                  Assert.AreEqual(i, ((businessObject)strat.Get("t1", "ThisIsAKeyLongerThanEight-"+i)).ID);
                  Assert.AreEqual(i, ((businessObject)strat.Get("t1", "ThisIsAKeyLongerThanEight-"+i)).ID);
                }
                else
                 collision++;
              }

              Console.WriteLine("Did {0}, collision {1}", CNT, collision);
              Assert.IsTrue(collision < (int)(CNT*k));

            }
        }
Ejemplo n.º 2
0
        public void ComplexKeyHashingStrategy_1()
        {
            using(var store = new CacheStore(null))
            {
              var strat = new ComplexKeyHashingStrategy(store);

              strat.Put("t1", "A", new businessObject { ID = 000,  Name = "Adoyan",   IsGood = true});
              strat.Put("t1", "B", new businessObject { ID = 234,  Name = "Borisenko", IsGood = false});
              strat.Put("t1", "C", new businessObject { ID = 342,  Name = "Carov",    IsGood = true});
              strat.Put("t2", "A", new businessObject { ID = 2000,  Name = "2Adoyan",   IsGood = true});
              strat.Put("t2", "B", new businessObject { ID = 2234,  Name = "2Borisenko", IsGood = false});
              strat.Put("t2", "C", new businessObject { ID = 2342,  Name = "2Carov",    IsGood = true});

              Assert.AreEqual("Adoyan",    ((businessObject)strat.Get("t1", "A")).Name);
              Assert.AreEqual("Borisenko", ((businessObject)strat.Get("t1", "B")).Name);
              Assert.AreEqual("Carov",     ((businessObject)strat.Get("t1", "C")).Name);

              Assert.AreEqual("2Adoyan",    ((businessObject)strat.Get("t2", "A")).Name);
              Assert.AreEqual("2Borisenko", ((businessObject)strat.Get("t2", "B")).Name);
              Assert.AreEqual("2Carov",     ((businessObject)strat.Get("t2", "C")).Name);
            }
        }