Exemplo n.º 1
0
        public void Initialize()
        {
            _logs        = new List <Dictionary <string, object> >();
            _experiment1 = new Experiment("first_experiment", new Dictionary <string, object>(), (assignment, objects) =>
            {
                assignment.Set(_experiment1ParamName, 1);
                return(true);
            })
            {
                Log = objects => { _logs.Add(objects); }
            };

            _experiment2 = new Experiment("second_experiment", new Dictionary <string, object>(),
                                          (assignment, objects) =>
            {
                assignment.Set(_experiment2ParamName, 2);
                return(true);
            })
            {
                Log = objects => { _logs.Add(objects); }
            };

            _experimentDefault = new Experiment("default_experiment", new Dictionary <string, object>(),
                                                (assignment, objects) =>
            {
                assignment.Set(_defaultParamName, 3);
                return(false);
            });

            _simpleNamespace = new SimpleNamespace("first_namespace", new Dictionary <string, object>()
            {
                { "user_id", "blah" }
            }, "user_id", 100);
        }
Exemplo n.º 2
0
        private static void TextNamespace(INamespaceManagerService namespaceManager)
        {
            var myfirstNamespace = new SimpleNamespace("textNamespace", namespaceManager.Inputs, "userId", 100);

            Experiment demoButtonEx = new Experiment("textExperiment", namespaceManager.Inputs, (assignment, objects) =>
            {
                var demoButton = assignment.Set("demoButton", new UniformChoiceBuilder(new Dictionary <string, object>()
                {
                    { "choices", new[] { "requestDemo", "specialOffer", "earlyFreeAccess" } }
                }, namespaceManager.Inputs));

                var pageTitle = assignment.Set("pageTitle", new UniformChoiceBuilder(new Dictionary <string, object>()
                {
                    { "choices", new[] { "embracePower", "newGeneration", "improveBusiness" } }
                }, namespaceManager.Inputs));

                return(true);
            })
            {
                Log = objects => { namespaceManager.EventLogger.Log(objects); }
            };

            myfirstNamespace.AddExperiment(demoButtonEx, 100);

            namespaceManager.AddNamespace(myfirstNamespace);
        }
Exemplo n.º 3
0
        private static void VideoPromotionNamespace(INamespaceManagerService namespaceManager)
        {
            var myfirstNamespace = new SimpleNamespace("video_promotion", namespaceManager.Inputs, "userId", 100);

            Experiment videoExperiment = new Experiment("video_experiment1", namespaceManager.Inputs,
                                                        (assignment, objects) =>
            {
                var showVideo = assignment.Set("show_video",
                                               new BernoulliTrialBuilder(new Dictionary <string, object>()
                {
                    { "p", 0.6 }
                }, namespaceManager.Inputs));
                if ((int)showVideo == 1)
                {
                    var playVideo = assignment.Set("play_video",
                                                   new BernoulliTrialBuilder(new Dictionary <string, object>()
                    {
                        { "p", 0.4 }
                    }, namespaceManager.Inputs));
                    if ((int)playVideo == 1)
                    {
                        var muteVideo = assignment.Set("mute_video",
                                                       new BernoulliTrialBuilder(new Dictionary <string, object>()
                        {
                            { "p", 0.5 }
                        }, namespaceManager.Inputs));
                    }
                }

                return(true);
            })
            {
                Log = objects => { namespaceManager.EventLogger.Log(objects); }
            };

            myfirstNamespace.AddExperiment(videoExperiment, 100);

            namespaceManager.AddNamespace(myfirstNamespace);
        }