Project

General

Profile

Defect #33576 » fix-33576-v2.patch

Go MAEDA, 2020-06-10 11:33

View differences:

app/models/issue.rb
1731 1731
          if children.any?
1732 1732
            child_with_total_estimated_hours = children.select {|c| c.total_estimated_hours.to_f > 0.0}
1733 1733
            if child_with_total_estimated_hours.any?
1734
              average = child_with_total_estimated_hours.map(&:total_estimated_hours).sum.to_f / child_with_total_estimated_hours.count
1734
              average = child_with_total_estimated_hours.map(&:total_estimated_hours).sum.to_d / child_with_total_estimated_hours.count
1735 1735
            else
1736
              average = 1.0
1736
              average = 1.0.to_d
1737 1737
            end
1738 1738
            done = children.map {|c|
1739
              estimated = c.total_estimated_hours.to_f
1739
              estimated = c.total_estimated_hours.to_d
1740 1740
              estimated = average unless estimated > 0.0
1741 1741
              ratio = c.closed? ? 100 : (c.done_ratio || 0)
1742 1742
              estimated * ratio
test/unit/issue_subtasking_test.rb
217 217
    end
218 218
  end
219 219

  
220
  def test_parent_done_ratio_with_completed_children_should_not_be_99
221
    with_settings :parent_issue_done_ratio => 'derived' do
222
      parent = Issue.generate!
223
      parent.generate_child!(:estimated_hours => 8.0, :done_ratio => 100)
224
      parent.generate_child!(:estimated_hours => 8.1, :done_ratio => 100)
225
      # (8.0 * 100 + 8.1 * 100) / (8.0 + 8.1) => 99.99999999999999
226
      assert_equal 100, parent.reload.done_ratio
227
    end
228
  end
229

  
220 230
  def test_done_ratio_of_parent_with_a_child_without_estimated_time_should_not_exceed_100
221 231
    with_settings :parent_issue_done_ratio => 'derived' do
222 232
      parent = Issue.generate!
(3-3/3)