Exemplo n.º 1
0
        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}")
Exemplo n.º 2
0
        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}")
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)