# frozen_string_literal: true require "spec_helper" describe Split::Algorithms::Whiplash do it "should return an algorithm" do experiment = Split::ExperimentCatalog.find_or_create("link_color", { "blue" => 1 }, { "red" => 1 }) expect(Split::Algorithms::Whiplash.choose_alternative(experiment).class).to eq(Split::Alternative) 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::Whiplash.choose_alternative(experiment).name end it "should guess floats" do expect(Split::Algorithms::Whiplash.send(:arm_guess, 0, 0).class).to eq(Float) expect(Split::Algorithms::Whiplash.send(:arm_guess, 1, 0).class).to eq(Float) expect(Split::Algorithms::Whiplash.send(:arm_guess, 2, 1).class).to eq(Float) expect(Split::Algorithms::Whiplash.send(:arm_guess, 1000, 5).class).to eq(Float) expect(Split::Algorithms::Whiplash.send(:arm_guess, 10, -2).class).to eq(Float) end end