def output_statistics(name, simpl, sselected, sdetail, sassigned, sfinished): f.write("\section{%s}\n" % name) f.write("\\begin{longtable}{rrl}\n") f.write("Start date & %s & \\\ \n" % format_date(self._start_date)) # Compute the opens sum_open = 0 for sp in [simpl, sselected]: for p in sp: sum_open += topic_set.get_requirement_set().\ get_requirement(p[1]).\ get_efe_or_0() f.write("Not done & %d & EfE units \\\ \n" % sum_open) # Compute the assigned sum_assigned = 0 for tr in sassigned: sum_assigned += tr.get_efe_or_0() f.write("Assigned & %d & EfE units \\\ \n" % sum_assigned) # Compute the finished sum_finished = 0 for tr in sfinished: sum_finished += tr.get_efe_or_0() f.write("Finished & %d & EfE units \\\ \n" % sum_finished) # Compute the finished where a time is given sum_finished_with_duration = 0 for tr in sfinished: if tr.get_status().get_duration() is not None: sum_finished_with_duration += tr.get_efe_or_0() f.write("Finished (duration given) & %d & EfE units \\\ \n" % sum_finished_with_duration) # Compute the finished where a time is given sum_duration = 0 for tr in sfinished: dur = tr.get_status().get_duration() if dur is not None: sum_duration += dur f.write(" & %d & hours \\\ \n" % sum_duration) # The Relation and the Estimated End Date can only be computed # When the duration is not 0. if sum_duration != 0: # Relation rel = sum_finished_with_duration / float(sum_duration) f.write("Relation & %4.2f & EfE units / hour \\\ \n" % rel) hours_to_do = sum_open / rel f.write("Estimated Not done & %4.2f & hours \\\ \n" % (hours_to_do)) # Estimated End Date rv = Statistics.get_units(topic_set.get_requirement_set(), self._start_date, self._end_date) x = list(i for i in range(0, len(rv))) y = list(x[0] + x[1] for x in rv) gradient, intercept, r_value, p_value, std_err \ = stats.linregress(x, y) if gradient >= 0.0: f.write("Estimated End date & unpredictable & \\\ \n") else: d = intercept / -gradient end_date = self._start_date + datetime.timedelta(d) f.write("Estimated End date & %s & \\\ \n" % end_date) f.write("\end{longtable}")
def output_statistics(name, simpl, sselected, sdetail, sassigned, sfinished): f.write("\\section{%s}\n" % name) f.write("\\begin{longtable}{rrl}\n") f.write("Start date & %s & \\\\ \n" % format_date( self._start_date)) # Compute the opens sum_open = 0 for sp in [simpl, sselected]: for p in sp: sum_open += topic_set.get_requirement_set().\ get_requirement(p[1]).\ get_efe_or_0() f.write("Not done & %d & EfE units \\\\ \n" % sum_open) # Compute the assigned sum_assigned = 0 for tr in sassigned: sum_assigned += tr.get_efe_or_0() f.write("Assigned & %d & EfE units \\\\ \n" % sum_assigned) # Compute the finished sum_finished = 0 for tr in sfinished: sum_finished += tr.get_efe_or_0() f.write("Finished & %d & EfE units \\\\ \n" % sum_finished) # Compute the finished where a time is given sum_finished_with_duration = 0 for tr in sfinished: if tr.get_status().get_duration() is not None: sum_finished_with_duration += tr.get_efe_or_0() f.write("Finished (duration given) & %d & EfE units \\\\ \n" % sum_finished_with_duration) # Compute the finished where a time is given sum_duration = 0 for tr in sfinished: dur = tr.get_status().get_duration() if dur is not None: sum_duration += dur f.write(" & %d & hours \\\\ \n" % sum_duration) # The Relation and the Estimated End Date can only be computed # When the duration is not 0. if sum_duration != 0: # Relation rel = sum_finished_with_duration / float(sum_duration) f.write("Relation & %4.2f & EfE units / hour \\\\ \n" % rel) hours_to_do = sum_open / rel f.write("Estimated Not done & %4.2f & hours \\\\ \n" % (hours_to_do)) # Estimated End Date rv = Statistics.get_units(topic_set.get_requirement_set(), self._start_date, self._end_date) x = list(i for i in range(0, len(rv))) y = list(x[0] + x[1] for x in rv) gradient, intercept, r_value, p_value, std_err \ = stats.linregress(x, y) if gradient >= 0.0: f.write("Estimated End date & unpredictable & \\\\ \n") else: d = intercept / -gradient end_date = self._start_date + datetime.timedelta(d) f.write("Estimated End date & %s & \\\\ \n" % end_date) f.write("\\end{longtable}")
def requirement_set_pre(self, requirement_set): '''Compute stats for each requirements set.''' rval = Statistics.get_units_sprint(requirement_set, self._start_date, self._end_date) Statistics.output_stat_files(self._output_filename, self._start_date, rval)
def output(self, reqscont): rv = Statistics.get_units_sprint(self.topic_set.reqset, self.start_date, self.end_date) Statistics.output_stat_files(self.output_filename, self.start_date, rv)