示例#1
0
        public void LookBehindPool_PrimitiveType_OutOfRangeIndexThrowsAnException()
        {
            //Arrange
            var floatPool = new PrimitiveTypePool(10);
            floatPool.Write(1);

            //Act & Assert

            Assert.ThrowsException<IndexOutOfRangeException>(() => floatPool[1]); 
        }
示例#2
0
 public void LookBehindPool_PrimitiveType_Constructor_Works()
 {
     //Arrange & Act
     int capacity = 10;        
     var numberPool = new PrimitiveTypePool(capacity);
     
     //Assert
     Assert.IsNotNull(numberPool.Length == 0);
     Assert.IsNotNull(numberPool.Capacity == capacity);
 }
示例#3
0
        public void Bookmark_Constructor_Works()
        {
            //Arrange
            PrimitiveTypePool pool = new PrimitiveTypePool(10);

            //Act
            Bookmark <double> bm = new Bookmark <double>(pool);

            //Assert
            Assert.AreEqual(0, bm.Sequence);
            Assert.AreEqual(0, bm.Length);
            Assert.AreEqual(0, bm.Position);
        }
示例#4
0
        public void LookBehindPool_PrimitiveType_Write_Works()
        {
            //Arrange
            var poolValue = 45;
            var stringPool = new PrimitiveTypePool(10);

            //Act
            stringPool.Write(poolValue);

            //Assert
            Assert.AreEqual(stringPool.Length, 1);            
            Assert.AreEqual(stringPool[0], poolValue);
            Assert.AreEqual(stringPool.Current, poolValue);
        }
示例#5
0
        public void LookBehindPool_PrimitiveType_WriteRollover_Works()
        {
            //Arrange
            var boolPool = new PrimitiveTypePool(2);

            //Act
            boolPool.Write(1);
            boolPool.Write(1);
            boolPool.Write(0);

            //Assert
            Assert.AreEqual(boolPool[0], 0);
            Assert.AreEqual(boolPool.Previous, 1);
            Assert.AreEqual(boolPool.Length, 2);           
        }
示例#6
0
        public void Bookmark_Indexer_ExpirationThrowsAnException()
        {
            //Arrange
            PrimitiveTypePool pool = new PrimitiveTypePool(3);

            pool.Write(1);
            pool.Write(2);
            pool.Write(3);

            Bookmark <double> bm = new Bookmark <double>(pool);

            //Act
            pool.Write(4);
            pool.Write(5);

            //Assert
            Assert.ThrowsException <Exception>(() => bm[1]);
        }
示例#7
0
        public void Bookmark_Previous_BeforeExpirationWorks()
        {
            //Arrange
            PrimitiveTypePool pool = new PrimitiveTypePool(3);

            pool.Write(1);
            pool.Write(2);
            pool.Write(3);

            Bookmark <double> bm = new Bookmark <double>(pool);

            Assert.AreEqual(3, bm.Current);

            //Act
            pool.Write(4);

            //Assert
            Assert.AreEqual(2, bm.Previous);
        }
示例#8
0
        public void Bookmark_Current_MatchesSourcePoolAfterSubsequentWrites()
        {
            //Arrange
            PrimitiveTypePool pool = new PrimitiveTypePool(10);

            pool.Write(1);
            pool.Write(2);
            pool.Write(3);

            Bookmark <double> bm = new Bookmark <double>(pool);

            //Act
            pool.Write(4);
            pool.Write(5);
            pool.Write(6);

            //Assert
            Assert.AreEqual(6, pool.Current);
            Assert.AreEqual(3, bm.Current);
            Assert.AreEqual(2, bm.Previous);
            Assert.AreEqual(3, bm[0]);
        }