require "test_helper" class DiceTest < ActiveSupport::TestCase test "rolls fomula" do result = Dice.roll_formula("4d6+2") assert_equal 4, result.rolls.count assert_equal 6, result.rolls.first&.sides end test "rolls single die" do result = Dice.roll(10) assert_equal 1, result.rolls.count assert_equal 10, result.rolls.first&.sides end test "increases sides below max" do original_result = Dice::Result.new original_result.add_roll Dice::Roll.new(6, 5) original_result.add_roll Dice::Roll.new(6, 6) original_result.add_roll Dice::Roll.new(6, 2) new_result = original_result.dup assert_equal 13, new_result.total new_result.increase_sides_below_max(6, 1) assert_equal 15, new_result.total new_result.rolls.each_with_index do |roll, index| assert_equal roll, original_result.rolls[index] end end end