Esempio n. 1
0
    def test_status_changes(self):
        leaf = self.leaf

        s = cycle.Lesion(fungus=septoria())
        leaf.lesions.append(s)

        for i in range(self.nb_steps):
            s.update(self.dt, leaf)
            # Test of the emergence of the first ring after 10 h of continuous wetness duration
            if i == 10:
                assert s.status == 1, s.status

            # Test of the begin of incubation 220DD after the emergence of the lesion
            if s.age_dday >= s.fungus.degree_days_to_chlorosis:
                assert s.status > 2, s.status

            # Test of the begin of incubation 330DD after the emergence of the lesion
            if s.age_dday >= s.fungus.degree_days_to_chlorosis + s.fungus.degree_days_to_sporulation:
                assert s.status > 3, s.status

            # Test of the depletion of the lesion after 3 rain events
            if s.status == 4:
                if i % 2 == 0:
                    leaf.rain_intensity = 5
                else:
                    leaf.rain_intensity = 0
            if s.rings[0].cumul_rain_event >= 3:
                assert s.status > 4, s.status
Esempio n. 2
0
    def test_Smax(self):
        leaf = self.leaf

        s = cycle.Lesion(fungus=septoria())
        leaf.lesions.append(s)

        for i in range(self.nb_steps):
            s.update(self.dt, leaf)

        assert sum([r.surface for r in s.rings]) <= s.fungus.Smax
Esempio n. 3
0
    def test_death_by_drought(self):
        leaf = self.leaf

        s = cycle.Lesion(fungus=septoria())
        leaf.lesions.append(s)

        for i in range(self.nb_steps):
            if i == 4:
                leaf.wetness = False
            else:
                leaf.wetness = True
            s.update(self.dt, leaf)
        if len(leaf.lesions) > 0:
            assert s.status == 6, s.status
Esempio n. 4
0
    def test_septoria_rain(self):
        leaf = self.leaf

        s = cycle.Lesion(fungus=septoria())
        leaf.lesions.append(s)

        for i in range(self.nb_steps):
            if i % 6 == 0:
                leaf.rain_intensity = 5
            else:
                leaf.rain_intensity = 0
            s.update(self.dt, leaf)

        return s
Esempio n. 5
0
    def test_powdery(self):
        leaf = self.leaf

        s = cycle.Lesion(fungus=powdery_mildew())
        leaf.lesions.append(s)

        for i in range(self.nb_steps):
            if i % 6 == 0:
                leaf.rain_intensity = 5
            else:
                leaf.rain_intensity = 0
            s.update(self.dt, leaf)

        return s, leaf
Esempio n. 6
0
    def test_septoria(self):
        dt = self.dt
        leaf = self.leaf

        s = cycle.Lesion(fungus=septoria())
        leaf.lesions.append(s)

        for i in range(self.nb_steps):
            s.update(self.dt, leaf)

        # Emptying of the lesions
        leaf.rain_intensity = 5
        s.update(dt, leaf)
        leaf.rain_intensity = 0
        s.update(dt, leaf)
        leaf.rain_intensity = 5
        s.update(dt, leaf)
        leaf.rain_intensity = 0
        s.update(dt, leaf)
        leaf.rain_intensity = 5
        s.update(dt, leaf)

        return s
Esempio n. 7
0
    def test_septoria_hist(self):
        leaf = self.leaf

        s = cycle.Lesion(fungus=septoria())
        leaf.lesions.append(s)

        hist_lesion_age = []
        hist_lesion_age_dday = []
        hist_lesion_status = []
        hist_lesion_surface = []
        hist_ring_status = []
        hist_all_rings_status = []

        for i in range(self.nb_steps):
            s.update(self.dt, leaf)
            hist_lesion_age.append(s.age)
            hist_lesion_age_dday.append(s.age_dday)
            hist_lesion_status.append(s.status)
            hist_lesion_surface.append(sum([r.surface for r in s.rings]))
            # [hist_all_rings_status.append(hist_ring_status.append(r.status)) for r in s.rings]

        return (hist_lesion_age, hist_lesion_age_dday, hist_lesion_status,
                hist_lesion_surface, hist_all_rings_status)