0

ユーザーのスコアをカウントするモデルに関数があります。

def score
  (MULTIPLER * Math::log10(bets.count * summary_value ** accuracy + 1)).floor
end

私のポイントは、対数的に成長することをテストすることですか?

4

4 に答える 4

0

私は複雑な数学の知識をほとんど忘れていますが、事実は私が質問に答えるのを止めることはできないようです.

私の提案は次のとおりです

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
于 2013-06-07T15:52:27.020 に答える
0

一般的に言えば、関数が成長するかどうかを確認する最良の方法は、グラフにデータをプロットすることです。グラフをプロットする宝石を使用して、結果を評価するだけです。

対数関数は常に次のようになります。

ログ機能イメージ
(出典: sosmath.com )

次に、パラメーターを使用して成長の速さを調整し、満足のいく結果が得られるまでグラフを再プロットします。

于 2013-06-07T16:02:04.113 に答える