             assert(container.back == element - 1, "Bad back")
             assert(container.front == 1, "Bad front")
         }
-        let popped = container.popBack()
-        assert(popped == 1, "Bad popFront() element")
-        assert(container.count == 0, "Container should have 0 elements")
-        assert(container.isEmpty, "Container should be empty")
-        assert(container.front == nil, "Bad front")
-        assert(container.back == nil, "Bad back")
-        
-        let popped2 = container.popBack()
-        assert(popped2 == nil, "Bad popFront() element")
+        assert(container.popBack() == 1, "Bad popFront() element")
+        doubleEndedContainerEmptyTest(&container)
     }
     
     /**
         popFront from a container with the data: (front) 1...testLength (back)
      */
     func doubleEndedContainerPopFrontTest<T: DoubleEndedContainer where T.Generator.Element == Int>(inout container: T) {
-        // Test popFront()
+
+        doubleEndedContainerFullTest(&container)
+        
         for element in 1...(testLength - 1) {
             let popped = container.popFront()
             assert(popped! == element, "Bad popFront() element")

        
        doubleEndedContainerSubscriptTest(&container)
        
        // Test removeAll
        for _ in 1...min(3, testLength) {
            container.pushFront(1)
        }
        assert(container.count > 0, "Count should be zero")
        assert(!container.isEmpty, "Container should not be empty")
        container.removeAll()
        assert(container.count == 0, "Count should be zero")
        assert(container.isEmpty, "Container should be empty")
    }
    
    func queueTest<T: QueueType where T.Generator.Element == Int>(inout queue: T) {

            assert(container.back == testLength, "Bad back")
            assert(container.front == element, "Bad front")
        }
        
        doubleEndedContainerFullTest(&container)
    }
    
    /**
      popBack from a container with the data: (front) 1...testLength (back)
    */
    func doubleEndedContainerPopBackTest<T: DoubleEndedContainer where T.Generator.Element == Int>(inout container: T) {
        
        doubleEndedContainerFullTest(&container)
        
        for element in Array((2...testLength).reverse()) {
            let popped = container.popBack()
            assert(popped! == element, "Bad popFront() element")
