def test_decimate(self):

        side1_lons = np.arange(8)
        side1_lats = np.arange(8) + 30
        side2_lons = np.arange(8) + 7
        side2_lats = np.arange(8) + 30 + 7
        side3_lons = np.arange(8) + 14
        side3_lats = np.arange(8) + 30 + 14
        side4_lons = np.arange(8) + 21
        side4_lats = np.arange(8) + 30 + 21

        bond = AreaBoundary((side1_lons, side1_lats),
                            (side2_lons, side2_lats),
                            (side3_lons, side3_lats),
                            (side4_lons, side4_lats))

        bond.decimate(5)
        lons, lats = bond.contour()

        self.assertTrue(np.allclose(lons,
                                    np.array([0, 1, 6, 7, 8,
                                              13, 14, 15, 20, 21, 22, 27])))
        self.assertTrue(np.allclose(lats,
                                    np.array([30, 31, 36, 37, 38, 43, 44, 45,
                                              50, 51, 52, 57])))
    def test_contour(self):

        side1_lons = np.arange(4)
        side1_lats = np.arange(4) + 20
        side2_lons = np.arange(4) + 3
        side2_lats = np.arange(4) + 20 + 3
        side3_lons = np.arange(4) + 6
        side3_lats = np.arange(4) + 20 + 6
        side4_lons = np.arange(4) + 9
        side4_lats = np.arange(4) + 20 + 9

        bond = AreaBoundary((side1_lons, side1_lats),
                            (side2_lons, side2_lats),
                            (side3_lons, side3_lats),
                            (side4_lons, side4_lats))

        lons, lats = bond.contour()
        self.assertTrue(np.allclose(lons, np.arange(12)))
        self.assertTrue(np.allclose(lats, np.arange(12) + 20))