ユーザーのスコアをカウントするモデルに関数があります。
def score
(MULTIPLER * Math::log10(bets.count * summary_value ** accuracy + 1)).floor
end
私のポイントは、対数的に成長することをテストすることですか?
私は複雑な数学の知識をほとんど忘れていますが、事実は私が質問に答えるのを止めることはできないようです.
私の提案は次のとおりです
describe "#score" do
it "grows logarithmically" do
round_1 = FactoryGirl.create_list(:bet, 10, value: 5).score
round_2 = FactoryGirl.create_list(:bet, 11, value: 5).score
# Then expect some math relation between round_1 and round_2,
# calculated by you manually.
end
end
一般的に言えば、関数が成長するかどうかを確認する最良の方法は、グラフにデータをプロットすることです。グラフをプロットする宝石を使用して、結果を評価するだけです。
対数関数は常に次のようになります。
(出典: sosmath.com )
次に、パラメーターを使用して成長の速さを調整し、満足のいく結果が得られるまでグラフを再プロットします。