     override func setUp() {
         super.setUp()
         l1 = TestLayoutable(sideLength: 30)
-        l2 = TestLayoutable(sideLength: 90)
-        l3 = TestLayoutable(sideLength: 60)
+        l2 = TestLayoutable(sideLength: 60)
+        l3 = TestLayoutable(sideLength: 90)
 
         l1.layoutMargins = UIEdgeInsets(
             top: 8,

            height: 300)
        layout.startLayout(with: layoutRect)

        XCTAssertEqual(l2.frame, CGRect(
            x: layoutRect.origin.x + l2.layoutMargins.left,
            y: layoutRect.origin.y + l2.layoutMargins.top,
            width: l2.sideLength,
            height: l2.sideLength),
            "unexpected l2 frame")
        XCTAssertEqual(l1.frame, CGRect(
            x: layoutRect.origin.x + l1.layoutMargins.left,
            y: layoutRect.origin.y + l1.layoutMargins.top,
            width: l1.sideLength,
            height: l1.sideLength),
            "unexpected l1 frame")
        XCTAssertEqual(l3.frame, CGRect(
            x: layoutRect.origin.x + l3.layoutMargins.left,
            y: layoutRect.origin.y + l3.layoutMargins.top,
            width: l3.sideLength,
            height: l3.sideLength),
            "unexpected l3 frame")
    }

    // TODO: Use own test layoutable instead of match parent to keep this test separated!
//    func testSizesMatchingParent() {
//        var layout = [l1.layoutMatchingParent(), l2.layoutMatchingParent(), l3.layoutMatchingParent()]
//            .layoutAsFrame()
//        let layoutRect = CGRect(
//            x: 5,
//            y: 10,
//            width: 300,
//            height: 300)
//        layout.startLayout(with: layoutRect)
//
//        XCTAssertEqual(l2.frame, CGRect(
//            x: layoutRect.origin.x + l2.layoutMargins.left,
//            y: layoutRect.origin.y + l2.layoutMargins.top,
//            width: TestLayoutable.sideLength,
//            height: TestLayoutable.sideLength),
//            "unexpected l2 frame")
//        // Frame 2 with its margins is the biggest.
//        // So all other frames sizes should be adjusted accordingly.
//        XCTAssertEqual(l1.frame, CGRect(
//            x: layoutRect.origin.x + l1.layoutMargins.left,
//            y: layoutRect.origin.y + l1.layoutMargins.top,
//            width: TestLayoutable.sideLength + l2.horizontalMargins - l1.horizontalMargins,
//            height: TestLayoutable.sideLength + l2.verticalMargins - l1.verticalMargins),
//            "unexpected l1 frame")
//        XCTAssertEqual(l3.frame, CGRect(
//            x: layoutRect.origin.x + l3.layoutMargins.left,
//            y: layoutRect.origin.y + l3.layoutMargins.top,
//            width: TestLayoutable.sideLength + l2.horizontalMargins - l3.horizontalMargins,
//            height: TestLayoutable.sideLength + l2.verticalMargins - l3.verticalMargins),
//            "unexpected l3 frame")
//    }

    func testMeasures() {
        var layout = [l1, l2, l3]

            width: 300,
            height: 200))

        let maxWidth = max(
            l1.sideLength + l1.horizontalMargins,
            l2.sideLength + l2.horizontalMargins,
            l3.sideLength + l3.horizontalMargins)
        let maxHeight = max(
            l1.sideLength + l1.verticalMargins,
            l2.sideLength + l2.verticalMargins,
            l3.sideLength + l3.verticalMargins)

        XCTAssertEqual(size, CGSize(
            width: maxWidth,
            height: maxHeight))
    }
}
