def setUp(self):
        # Set the source property

        self.src_mfd = mfdeven.EvenlyDiscretizedMFD(7.5, 1., [1.])
        self.src_msr = msr.BaseMSR
        self.src_tom = tom.PoissonTOM(50)
        self.sarea = WC1994()
        self.upper_seismogenic_depth = 0.
        self.lower_seismogenic_depth = 40.
        self.dip = 90.
        self.rake = 0.
        self.mesh_spacing = 1.
        self.fault_trace_start = Point(0.0, 0.0)
        self.fault_trace_end = Point(1.0, 0.0)
        self.fault_trace_nodes = [self.fault_trace_start, self.fault_trace_end]
        # Set the fault trace

        self.fault_trace = Line(self.fault_trace_nodes)
    def test_slip_vertical_rupture(self):
        self.src_mfd = mfdeven.EvenlyDiscretizedMFD(8.5, 1., [1.])
        source_id = name = 'test-source'
        trt = TRT.ACTIVE_SHALLOW_CRUST
        hypo_list = numpy.array([[0.25, 0.25, 0.4], [0.75, 0.75, 0.6]])
        slip_list = numpy.array([[90., 0.25], [0., 0.75]])
        src = SimpleFaultSource(source_id, name, trt, self.src_mfd,
                                self.mesh_spacing, self.sarea, 1.,
                                self.src_tom, self.upper_seismogenic_depth,
                                self.lower_seismogenic_depth, self.fault_trace,
                                self.dip, self.rake, hypo_list, slip_list)

        slip = [90., 0., 90., 0.]
        rate = [0.1, 0.3, 0.15, 0.45]

        for rup, i in zip(src.iter_ruptures(), range(1000)):
            self.assertAlmostEqual(rup.rupture_slip_direction,
                                   slip[i],
                                   delta=0.1)
            self.assertAlmostEqual(rup.occurrence_rate, rate[i], delta=0.01)