Sha256: 4678a29364b652cda2318427bb1730e41e0f2aca18483bfba3eaca415e183190

Contents?: true

Size: 893 Bytes

Versions: 3

Compression:

Stored size: 893 Bytes

Contents

# frozen_string_literal: true

require "spec_helper"

describe Split::Algorithms::WeightedSample do
  it "should return an alternative" do
    experiment = Split::ExperimentCatalog.find_or_create("link_color", { "blue" => 100 }, { "red" => 0 })
    expect(Split::Algorithms::WeightedSample.choose_alternative(experiment).class).to eq(Split::Alternative)
  end

  it "should always return a heavily weighted option" do
    experiment = Split::ExperimentCatalog.find_or_create("link_color", { "blue" => 100 }, { "red" => 0 })
    expect(Split::Algorithms::WeightedSample.choose_alternative(experiment).name).to eq("blue")
  end

  it "should return one of the results" do
    experiment = Split::ExperimentCatalog.find_or_create("link_color", { "blue" => 1 }, { "red" => 1 })
    expect(["red", "blue"]).to include Split::Algorithms::WeightedSample.choose_alternative(experiment).name
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
split-4.0.4 spec/algorithms/weighted_sample_spec.rb
split-4.0.3 spec/algorithms/weighted_sample_spec.rb
split-4.0.2 spec/algorithms/weighted_sample_spec.rb