Beispiel #1
0
        public void Cannot_get_uninitialized_element_before_any_sets()
        {
            var store = new IndexedRandomAccessStore <string>();

            Assert.That(store.ReserveIndex(), Is.EqualTo(0));
            Assert.That(() => store[0], Throws.InstanceOf <IndexOutOfRangeException>());
        }
Beispiel #2
0
        public void Cannot_get_uninitialized_element_after_a_different_set()
        {
            var store = new IndexedRandomAccessStore <string>();

            Assert.That(store.ReserveIndex(), Is.EqualTo(0));
            Assert.That(store.ReserveIndex(), Is.EqualTo(1));
            Assert.That(() => store[1] = "one", Throws.Nothing);
            Assert.That(() => store[0], Throws.InstanceOf <IndexOutOfRangeException>());
        }
Beispiel #3
0
        public void Elements_can_be_set_in_any_order()
        {
            var store = new IndexedRandomAccessStore <string>();

            Assert.That(store.ReserveIndex(), Is.EqualTo(0));
            Assert.That(store.ReserveIndex(), Is.EqualTo(1));
            Assert.That(store.ReserveIndex(), Is.EqualTo(2));
            Assert.That(() => store[2] = "something", Throws.Nothing);
            Assert.That(store[2], Is.EqualTo("something"));
        }
Beispiel #4
0
        public void Reserve_set_get_succeeds()
        {
            var store = new IndexedRandomAccessStore <string>();

            Assert.That(store.Count, Is.EqualTo(0));
            Assert.That(store.ReserveIndex(), Is.EqualTo(0));
            Assert.That(store.Count, Is.EqualTo(1));
            Assert.That(() => store[0] = "test", Throws.Nothing);
            Assert.That(store.Count, Is.EqualTo(1));
            Assert.That(store[0], Is.EqualTo("test"));
        }
Beispiel #5
0
        public void Internal_array_is_resized()
        {
            var store = new IndexedRandomAccessStore <string>();

            for (var i = 0; i < 10; i++)
            {
                Assert.That(store.ReserveIndex(), Is.EqualTo(i));
                Assert.That(store.Count, Is.EqualTo(i + 1));
            }
            Assert.That(() => store[9] = "nine", Throws.Nothing);

            for (var i = 10; i < 1000; i++)
            {
                Assert.That(store.ReserveIndex(), Is.EqualTo(i));
                Assert.That(store.Count, Is.EqualTo(i + 1));
            }
            Assert.That(() => store[100] = "one zero zero", Throws.Nothing);
            Assert.That(() => store[999] = "nine nine nine", Throws.Nothing);

            Assert.That(store[9], Is.EqualTo("nine"));
            Assert.That(store[100], Is.EqualTo("one zero zero"));
            Assert.That(store[999], Is.EqualTo("nine nine nine"));
        }
Beispiel #6
0
        public void Reserve_must_be_called_before_setting()
        {
            var store = new IndexedRandomAccessStore <string>();

            Assert.That(() => store[0] = "test", Throws.InstanceOf <IndexOutOfRangeException>());
        }