public void threads(int iterations) { var tt = new SimpleTranslationTable<myClass>(); var ro = new ReadonlySimpleTranslationTable<myClass>(tt); Parallel.For(1, iterations, (i) => { tt[new myClass { age=i }]=new myClass { age=i*2 }; }); Assert.IsTrue(tt.ToDictionary().Count() == iterations-1); Parallel.For(1, iterations, (i) => { Assert.IsTrue(ro[new myClass { age=i }] == new myClass { age=i*2 }); Assert.IsFalse(ro[new myClass { age=i }] != new myClass { age=i*2 }); }); }
public void complexType() { var tt = new SimpleTranslationTable<myClass>(); var ro = new ReadonlySimpleTranslationTable<myClass>(tt); tt.Add( new myClass{ name="left", age=1 }, new myClass{ name="right", age=2 } ).Add( new myClass(), new myClass{ name="noname", age=-1 } ); var r = tt[new myClass { name="left", age=1 }]; int i = new myClass { name="right", age=2 }; Assert.IsTrue(r == "right, 2"); Assert.IsTrue(r == i); var u = tt[new myClass()]; i=new myClass { name="noname", age=-1 }; Assert.IsTrue("noname, -1" == u); Assert.IsTrue(u == i); }