  testOutlinesShapes2
     */
 
+    // MARK: -
+    
+    func testEquatable() {
+        let l1 = LineSegment(p0: BKPoint(x: 1.0, y: 2.0), p1: BKPoint(x: 3.0, y: 4.0))
+        let l2 = LineSegment(p0: BKPoint(x: 1.0, y: 3.0), p1: BKPoint(x: 3.0, y: 4.0))
+        let l3 = LineSegment(p0: BKPoint(x: 1.0, y: 2.0), p1: BKPoint(x: 3.0, y: 5.0))
+        XCTAssertEqual(l1, l1)
+        XCTAssertNotEqual(l1, l2)
+        XCTAssertNotEqual(l1, l3)
+    }
 }

        let l = LineSegment(p0: BKPoint(x:1.0, y: 2.0), p1: BKPoint(x: 4.0, y: 2.0))
        let i = l.intersects(curve: c)
        XCTAssertEqual(i.count, 1)
        XCTAssert(intersections(i, betweenCurve: l, andOtherCurve: c, areWithinTolerance: epsilon))
    }

    

        XCTAssertEqualWithAccuracy(i2[2].t1, 0.75, accuracy: epsilon)
        XCTAssertEqualWithAccuracy(i2[2].t2, 0.0, accuracy: epsilon)
    }
        
    func testIntersectsDegenerateCubic1() {
        // a special case where the cubic is degenerate (it can actually be described as a quadratic)
        let epsilon: BKFloat = 0.00001
