Navigation Menu

Skip to content

Commit

Permalink
fix random number generation when using interval (TSUN-184)
Browse files Browse the repository at this point in the history
  • Loading branch information
nniclausse committed Jul 12, 2011
1 parent 46a2af5 commit a8574c5
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 3 deletions.
3 changes: 2 additions & 1 deletion src/test/ts_test_all.erl
Expand Up @@ -25,4 +25,5 @@ all_test_() -> [ts_test_recorder,
ts_test_match,
ts_test_mon,
ts_test_user_server,
ts_test_search].
ts_test_search,
ts_test_stats].
23 changes: 23 additions & 0 deletions src/test/ts_test_stats.erl
@@ -0,0 +1,23 @@
%%%-------------------------------------------------------------------
%%% File : ts_test_stats.erl
%%% Author : Nicolas Niclausse <nicolas@niclux.org>
%%% Description :
%%%
%%% Created : 12 Jul 2011 by Nicolas Niclausse <nicolas@niclux.org>
%%%-------------------------------------------------------------------
-module(ts_test_stats).

-compile(export_all).

-include_lib("eunit/include/eunit.hrl").
-include_lib("ts_profile.hrl").
-include_lib("ts_config.hrl").

-define(EPSILON,0.01). % error (used to compare floats)

set_dynvar_random_test() ->
Min=1,
Max=10,
R=lists:map(fun(_)->ts_stats:uniform(Min,Max) end, lists:seq(1,1000)),
?assertEqual(Max,lists:max(R)),
?assertEqual(Min,lists:min(R)).
2 changes: 1 addition & 1 deletion src/tsung/ts_client.erl
Expand Up @@ -451,7 +451,7 @@ set_dynvars(erlang,{Module,Callback},_Vars,DynData) ->
set_dynvars(code,Fun,_Vars,DynData) ->
Fun({self(),DynData#dyndata.dynvars});
set_dynvars(random,{number,Start,End},Vars,_DynData) ->
lists:map(fun(_) -> integer_to_list(Start+random:uniform(End-Start)) end,Vars);
lists:map(fun(_) -> integer_to_list(ts_stats:uniform(Start,End)) end,Vars);
set_dynvars(random,{string,Length},Vars,_DynData) ->
R = fun(_) -> ts_utils:randomstr(Length) end,
lists:map(R,Vars);
Expand Down
2 changes: 1 addition & 1 deletion src/tsung/ts_stats.erl
Expand Up @@ -54,7 +54,7 @@ sample (F, X, Param, N) ->
sample(F, [F(Param)|X], Param, N-1 ).

uniform(Min,Max)->
Min+random:uniform(Max-Min).
Min+random:uniform(Max-Min+1)-1.

%% random sample from an exponential distribution
exponential(Param) ->
Expand Down

0 comments on commit a8574c5

Please sign in to comment.