public void WeakCompareAndSet()
        {
            AtomicReferenceArray <T> ai = new AtomicReferenceArray <T>(DEFAULT_COLLECTION_SIZE);

            for (int i = 0; i < DEFAULT_COLLECTION_SIZE; ++i)
            {
                ai.Exchange(i, one);
                while (!ai.WeakCompareAndSet(i, one, two))
                {
                }
                while (!ai.WeakCompareAndSet(i, two, m4))
                {
                }
                Assert.AreEqual(m4, ai[i]);
                while (!ai.WeakCompareAndSet(i, m4, seven))
                {
                }
                Assert.AreEqual(seven, ai[i]);
            }
        }