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 complexTypeA() {

            var tt = 
                new SimpleTranslationTable<myClass>()
                .A(new myClass { name="key1", age=1 }, new myClass { name="value1", age=1 })
                .A(new myClass { name="key1", age=1 }, new myClass { name="value1", age=1 })
                .A(new myClass { name="key1", age=1 }, new myClass { name="value1", age=1 })
                .A(new myClass { name="key1", age=1 }, new myClass { name="value1", age=1 })
                .A(new myClass { name="key1", age=1 }, new myClass { name="value1", age=7 })
            ;
            Assert.IsTrue(tt[new myClass { name="key1", age=1 }] == new myClass { name="value1", age=7 });
            Assert.IsTrue(tt[new myClass { name="key1", age=1 }] == "value1, 7");
            Assert.IsTrue(tt.ToDictionary().Count == 1);
            tt.ToDictionary().Add(new myClass { name="key2", age=2 }, new myClass { name="key2", age=2 });
            Assert.IsTrue(tt[new myClass { name="key2", age=2 }] == "key2, 2");

            var ro = new ReadonlySimpleTranslationTable<myClass>(tt);
            ro.ToDictionary().Add(new myClass { name="key3", age=3 }, new myClass { name="value3", age=3 });
            Assert.IsTrue(ro[new myClass { name="key3", age=3 }] == "key3, 3");

        }