Sha256: c82a2563a41df3ce91af3403351c5d1dcce05c3c3e729e9635c29af02eed33ea
Contents?: true
Size: 958 Bytes
Versions: 6
Compression:
Stored size: 958 Bytes
Contents
# frozen_string_literal: true require 'digest/sha2' module Cucumber module Filters # Batches up all test cases, randomizes them, and then sends them on class Randomizer def initialize(seed, receiver=nil) @receiver = receiver @test_cases = [] @seed = seed end def test_case(test_case) @test_cases << test_case self end def done shuffled_test_cases.each do |test_case| test_case.describe_to(@receiver) end @receiver.done self end def with_receiver(receiver) self.class.new(@seed, receiver) end private def shuffled_test_cases digester = Digest::SHA2.new(256) @test_cases.map.with_index. sort_by { |_, index| digester.digest((@seed + index).to_s) }. map { |test_case, _| test_case } end attr_reader :seed private :seed end end end
Version data entries
6 entries across 6 versions & 1 rubygems