Sha256: af4b897a7159d4a859410b6ae27bbcecfe2a07f3f065386e35c38e11c4e365c0

Contents?: true

Size: 1.04 KB

Versions: 20

Compression:

Stored size: 1.04 KB

Contents

module CI
  module Queue
    class Bisect
      def initialize(path, config)
        @tests = ::File.readlines(path).map(&:strip).reject(&:empty?).take_while { |t| t != config.failing_test }
        @config = config
      end

      def size
        @tests.size
      end

      def populate(all_tests, random: nil)
        @all_tests = all_tests
      end

      def to_a
        @tests + [config.failing_test]
      end

      def suspects_left
        @tests.size
      end

      def failing_test
        Static.new([config.failing_test], config).populate(@all_tests)
      end

      def candidates
        Static.new(first_half + [config.failing_test], config).populate(@all_tests)
      end

      def failed!
        @tests = first_half
      end

      def succeeded!
        @tests = second_half
      end

      private

      attr_reader :config

      def slices
        @tests.each_slice((@tests.size / 2.0).ceil).to_a
      end

      def first_half
        slices.first
      end

      def second_half
        slices.last
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
ci-queue-0.16.0 lib/ci/queue/bisect.rb
ci-queue-0.15.1 lib/ci/queue/bisect.rb
ci-queue-0.15.0 lib/ci/queue/bisect.rb
ci-queue-0.15.0.beta1 lib/ci/queue/bisect.rb
ci-queue-0.14.1 lib/ci/queue/bisect.rb
ci-queue-0.14.0 lib/ci/queue/bisect.rb
ci-queue-0.13.6 lib/ci/queue/bisect.rb
ci-queue-0.13.5 lib/ci/queue/bisect.rb
ci-queue-0.13.4 lib/ci/queue/bisect.rb
ci-queue-0.13.3 lib/ci/queue/bisect.rb
ci-queue-0.13.2 lib/ci/queue/bisect.rb
ci-queue-0.13.1 lib/ci/queue/bisect.rb
ci-queue-0.13.0 lib/ci/queue/bisect.rb
ci-queue-0.12.1 lib/ci/queue/bisect.rb
ci-queue-0.12.0 lib/ci/queue/bisect.rb
ci-queue-0.11.1 lib/ci/queue/bisect.rb
ci-queue-0.11.0 lib/ci/queue/bisect.rb
ci-queue-0.10.1 lib/ci/queue/bisect.rb
ci-queue-0.10.0 lib/ci/queue/bisect.rb
ci-queue-0.9.2 lib/ci/queue/bisect.rb