     init(identifier: String) {
         self.identifier = identifier
     }
-    
 }
 
 func == (lhs: TestElement, rhs: TestElement) -> Bool {

    
    func testIntegerArrayWithPositiveRowsAndColumns() {
        let array = Array2D<Int>(columns: 3, rows: 2, initialValue: 0)
        XCTAssert(array.columns == 3, "Column count setup worked")
        XCTAssert(array.rows == 2, "Rows count setup worked")
        XCTAssert(array[2,2] == 0, "Integer array: Initialization value properly read")
    }
    
    func testStringArrayWithPositiveRowsAndColumns() {
        let array = Array2D<String>(columns: 3, rows: 2, initialValue: "empty")
        XCTAssert(array.columns == 3, "Column count setup worked")
        XCTAssert(array.rows == 2, "Rows count setup worked")
        XCTAssert(array[2,2] == "empty", "String array: Initialization value properly read")
    }
    
    func testCustomClassArrayWithPositiveRowsAndColumns() {
        let array = Array2D<TestElement>(columns: 3, rows: 2, initialValue: TestElement(identifier: "pepe"))
        XCTAssert(array.columns == 3, "Column count setup worked")
        XCTAssert(array.rows == 2, "Rows count setup worked")
        XCTAssert(array[2,2] == TestElement(identifier: "pepe"), "Custom Class array: Initialization value properly read")
    }
    
    func testArrayWithNegativeColumns() {
        let array = Array2D(columns: -1,rows: 2,initialValue: 0)
        XCTAssertNil(array)
    }
    
    func testAccessingWrongIndex() {
        let array = Array2D(columns: 2, rows: 4, initialValue: 5)
        XCTAssertNil(array[20,20], "Array in 20,20 is not a valid index")
    }
    
    func testPerformanceOnSmallArray() {


    func testPerformanceOnLargeArray() {
        self.measureBlock {
            self.printArrayWith(columns: 2000, rows: 2000, inititalValue: 1)
        }
    }

