Esempio n. 1
0
def _shorten_capacities_to_start_from_remaining_time_entry(capacities_series, first_remaining_time):
    shortened_capacities = _shorten_series_to_start_from_day(capacities_series, first_remaining_time.when)
    # synthesize first ideal burndown entry at the time of the first remaining_time
    before, after = _entries_from_timeseries_nearest_to(capacities_series, first_remaining_time.when)
    if before is not None and after is not None:
        interpolated_start_capacity = Line.from_two_tupples(before, after).y_from_x(first_remaining_time.when)
        shortened_capacities = [(first_remaining_time.when, interpolated_start_capacity)] + shortened_capacities[1:]
    return shortened_capacities
Esempio n. 2
0
    def test_can_create_line_with_no_slope_from_points(self):
        line = Line.from_two_tupples((0, 0), (0, 10))
        self.assert_equals(0, line.slope)


# TODO: make sure points can be instructed with times and floats
Esempio n. 3
0
 def test_can_initialize_line_from_two_tupples(self):
     line = Line.from_two_tupples((0, 0), (1, 1))
     self.assert_equals(Point(0, 0), line.point)
     self.assert_equals(1, line.slope)
Esempio n. 4
0
 def _calculate_ideal_burndown_at_datetime(self, ideal_data, a_datetime):
     before, after = _entries_from_timeseries_nearest_to(ideal_data, a_datetime)
     if before is None or after is None:
         return 0
     
     return Line.from_two_tupples(before, after).y_from_x(a_datetime)
Esempio n. 5
0
 def test_can_create_line_with_no_slope_from_points(self):
     line = Line.from_two_tupples((0, 0), (0, 10))
     self.assert_equals(0, line.slope)
Esempio n. 6
0
 def test_can_initialize_line_from_two_tupples(self):
     line = Line.from_two_tupples((0, 0), (1, 1))
     self.assert_equals(Point(0, 0), line.point)
     self.assert_equals(1, line.slope)