示例#1
0
        public async Task PSS3()
        {
            string testName = "PSS3";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp1";
            model.Treatment         = "Treat3";
            model.ControlGroup      = "A";
            model.AbsoluteChange    = "0.25,0.5, 0.75, 1";
            model.ChangeType        = ChangeTypeOption.Absolute;
            model.PlottingRangeType = PlottingRangeTypeOption.Power;

            //Act
            HttpResponseMessage response = await client.PostAsync("Analyses/ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            IEnumerable <string> errors = await Helpers.ExtractErrors(response);

            //Assert
            Assert.Contains("There is no replication in one or more of the levels of the Treatment (Treat3). Please select another factor.", errors);
            Helpers.SaveOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName, errors);
        }
示例#2
0
        public async Task PSS32()
        {
            string testName = "PSS32";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp1";
            model.Treatment         = "Trea t1";
            model.ControlGroup      = "x";
            model.Significance      = "0.01";
            model.PercentChange     = "0.25 0.5 0.75 1";
            model.ChangeType        = ChangeTypeOption.Percent;
            model.PlottingRangeType = PlottingRangeTypeOption.Power;
            model.PowerFrom         = 50;
            model.PowerTo           = 80;

            //Act
            HttpResponseMessage response = await client.PostAsync("Analyses/ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            IEnumerable <string> errors = await Helpers.ExtractErrors(response);

            //Assert
            Assert.Contains("Percent changes has non-numeric values or the values are not comma separated.", errors);
            Helpers.SaveOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName, errors);
        }
示例#3
0
        public async Task PSS15()
        {
            string testName = "PSS15";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp1";
            model.Treatment         = "Trea t1";
            model.ControlGroup      = "x";
            model.PercentChange     = "40, 60, 80,100";
            model.ChangeType        = ChangeTypeOption.Percent;
            model.PlottingRangeType = PlottingRangeTypeOption.SampleSize;

            //Act
            StatsOutput statsOutput = await Helpers.SubmitAnalysis(client, "ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            Helpers.SaveTestOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", model, testName, statsOutput);

            //Assert
            string expectedHtml = File.ReadAllText(Path.Combine("ExpectedResults", "ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName + ".html"));

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
示例#4
0
        public async Task PSS30()
        {
            string testName = "PSS30";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp1";
            model.Treatment         = null;
            model.ControlGroup      = null;
            model.Significance      = "0.01";
            model.AbsoluteChange    = "0.25, 0.5, 0.75, 1";
            model.ChangeType        = ChangeTypeOption.Absolute;
            model.PlottingRangeType = PlottingRangeTypeOption.Power;
            model.PowerFrom         = 50;
            model.PowerTo           = 80;

            //Act
            StatsOutput statsOutput = await Helpers.SubmitAnalysis(client, "ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            Helpers.SaveTestOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", model, testName, statsOutput);

            //Assert
            string expectedHtml = File.ReadAllText(Path.Combine("ExpectedResults", "ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName + ".html"));

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
示例#5
0
        public async Task PSS13()
        {
            string testName = "PSS13";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp1";
            model.Treatment         = "Trea t1";
            model.ControlGroup      = "x";
            model.AbsoluteChange    = "0.25,0.5, 0.75, 1";
            model.ChangeType        = ChangeTypeOption.Absolute;
            model.PlottingRangeType = PlottingRangeTypeOption.SampleSize;
            model.SampleSizeFrom    = 80;
            model.SampleSizeTo      = 50;

            //Act
            HttpResponseMessage response = await client.PostAsync("Analyses/ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            IEnumerable <string> errors = await Helpers.ExtractErrors(response);

            //Assert
            Assert.Contains("Sample Size To value must be greater than the From value.", errors);
            Helpers.SaveOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName, errors);
        }
示例#6
0
        public async Task PSS14()
        {
            string testName = "PSS14";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp1";
            model.Treatment         = null;
            model.ControlGroup      = null;
            model.PercentChange     = "40 60 80 100";
            model.ChangeType        = ChangeTypeOption.Percent;
            model.PlottingRangeType = PlottingRangeTypeOption.SampleSize;

            //Act
            HttpResponseMessage response = await client.PostAsync("Analyses/ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            IEnumerable <string> errors = await Helpers.ExtractErrors(response);

            //Assert
            Assert.Contains("You have selected % change as expected changes from control, but as you have not defined the control group it is not possible to calculate the % change.", errors);
            Helpers.SaveOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName, errors);
        }
示例#7
0
        public async Task PSS5()
        {
            string testName = "PSS5";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp3";
            model.Treatment         = "Trea t1";
            model.ControlGroup      = "x";
            model.AbsoluteChange    = "0.25,0.5, 0.75, 1";
            model.ChangeType        = ChangeTypeOption.Absolute;
            model.PlottingRangeType = PlottingRangeTypeOption.Power;

            //Act
            HttpResponseMessage response = await client.PostAsync("Analyses/ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            IEnumerable <string> errors = await Helpers.ExtractErrors(response);

            //Assert
            Assert.Contains("The Response (Resp3) contains non-numerical data that cannot be processed. Please check input data and make sure the data was entered correctly.", errors);
            Helpers.SaveOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName, errors);
        }
示例#8
0
        public async Task PSS1()
        {
            string testName = "PSS1";

            //Arrange
            HttpClient client = _factory.CreateClient();

            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - Means Comp").Key;
            model.Response          = "Resp 1";
            model.Treatment         = "Resp 1";
            model.ControlGroup      = "0.998758912";
            model.PercentChange     = "10";
            model.ChangeType        = ChangeTypeOption.Percent;
            model.PlottingRangeType = PlottingRangeTypeOption.SampleSize;

            //Act
            HttpResponseMessage response = await client.PostAsync("Analyses/ComparisonOfMeansPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(model.ToKeyValue()));

            IEnumerable <string> errors = await Helpers.ExtractErrors(response);

            //Assert
            Assert.Contains("Response (Resp 1) has been selected in more than one input category, please change your input options.", errors);
            Helpers.SaveOutput("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", testName, errors);
        }
示例#9
0
        public void GetCommandLineArguments_ReturnsCorrectString()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel sut = GetModel();

            //Act
            string result = sut.GetCommandLineArguments();

            //Assert
            Assert.Equal("DatasetValues Resp1 Treat2 x 0.05 Percent 5 PowerAxis 70 90 NULL", result);
        }
示例#10
0
        public void ScriptFileName_ReturnsCorrectString()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel sut = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            //Act
            string result = sut.ScriptFileName;

            //Assert
            Assert.Equal("ComparisonOfMeansPowerAnalysisDatasetBasedInputs", result);
        }
示例#11
0
        public void SignificancesList_ReturnsCorrectList()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel sut = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            //Act
            IEnumerable <string> result = sut.SignificancesList;

            //Assert
            Assert.IsAssignableFrom <IEnumerable <string> >(result);
            Assert.Equal(new List <string>()
            {
                "0.1", "0.05", "0.01", "0.001"
            }, result);
        }
示例#12
0
        private ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel GetModel()
        {
            var model = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel
            {
                AbsoluteChange    = null,
                ChangeType        = ChangeTypeOption.Percent,
                ControlGroup      = "x",
                GraphTitle        = null,
                PercentChange     = "5",
                PlottingRangeType = PlottingRangeTypeOption.Power,
                PowerFrom         = 70,
                PowerTo           = 90,
                Response          = "Resp1",
                SampleSizeFrom    = null,
                SampleSizeTo      = null,
                Significance      = "0.05",
                Treatment         = "Treat2"
            };

            return(model);
        }
 public async Task <IActionResult> ComparisonOfMeansPowerAnalysisDatasetBasedInputs(ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel model, bool ignoreWarnings)
 {
     return(await RunAnalysis(model, ignoreWarnings));
 }
示例#14
0
        public void GetArguments_ReturnsCorrectArguments()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel sut = GetModel();

            //Act
            List <Argument> result = sut.GetArguments().ToList();

            //Assert
            var absoluteChange = result.Single(x => x.Name == "AbsoluteChange");

            Assert.Null(absoluteChange.Value);

            var changeType = result.Single(x => x.Name == "ChangeType");

            Assert.Equal("Percent", changeType.Value);

            var controlGroup = result.Single(x => x.Name == "ControlGroup");

            Assert.Equal("x", controlGroup.Value);

            var graphTitle = result.Single(x => x.Name == "GraphTitle");

            Assert.Null(graphTitle.Value);

            var percentChange = result.Single(x => x.Name == "PercentChange");

            Assert.Equal("5", percentChange.Value);

            var plottingRangeType = result.Single(x => x.Name == "PlottingRangeType");

            Assert.Equal("Power", plottingRangeType.Value);

            var powerFrom = result.Single(x => x.Name == "PowerFrom");

            Assert.Equal("70", powerFrom.Value);

            var powerTo = result.Single(x => x.Name == "PowerTo");

            Assert.Equal("90", powerTo.Value);

            var response = result.Single(x => x.Name == "Response");

            Assert.Equal("Resp1", response.Value);

            var sampleSizeFrom = result.Single(x => x.Name == "SampleSizeFrom");

            Assert.Null(sampleSizeFrom.Value);

            var sampleSizeTo = result.Single(x => x.Name == "SampleSizeTo");

            Assert.Null(sampleSizeTo.Value);

            var significance = result.Single(x => x.Name == "Significance");

            Assert.Equal("0.05", significance.Value);

            var treatment = result.Single(x => x.Name == "Treatment");

            Assert.Equal("Treat2", treatment.Value);
        }
示例#15
0
        public void LoadArguments_ReturnsCorrectArguments()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel sut = new ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel();

            List <Argument> arguments = new List <Argument>();

            arguments.Add(new Argument {
                Name = "AbsoluteChange"
            });
            arguments.Add(new Argument {
                Name = "ChangeType", Value = "Percent"
            });
            arguments.Add(new Argument {
                Name = "ControlGroup", Value = "x"
            });
            arguments.Add(new Argument {
                Name = "GraphTitle"
            });
            arguments.Add(new Argument {
                Name = "PercentChange", Value = "5"
            });
            arguments.Add(new Argument {
                Name = "PlottingRangeType", Value = "Power"
            });
            arguments.Add(new Argument {
                Name = "PowerFrom", Value = "70"
            });
            arguments.Add(new Argument {
                Name = "PowerTo", Value = "90"
            });
            arguments.Add(new Argument {
                Name = "Response", Value = "Resp1"
            });
            arguments.Add(new Argument {
                Name = "SampleSizeFrom"
            });
            arguments.Add(new Argument {
                Name = "SampleSizeTo"
            });
            arguments.Add(new Argument {
                Name = "Significance", Value = "0.05"
            });
            arguments.Add(new Argument {
                Name = "Treatment", Value = "Treat2"
            });

            Assert.Equal(13, arguments.Count);

            //Act
            sut.LoadArguments(arguments);

            //Assert
            Assert.Null(sut.AbsoluteChange);
            Assert.Equal(ChangeTypeOption.Percent, sut.ChangeType);
            Assert.Equal("x", sut.ControlGroup);
            Assert.Null(sut.GraphTitle);
            Assert.Equal("5", sut.PercentChange);
            Assert.Equal(PlottingRangeTypeOption.Power, sut.PlottingRangeType);
            Assert.Equal(70, sut.PowerFrom);
            Assert.Equal(90, sut.PowerTo);
            Assert.Equal("Resp1", sut.Response);
            Assert.Null(sut.SampleSizeFrom);
            Assert.Null(sut.SampleSizeTo);
            Assert.Equal("0.05", sut.Significance);
            Assert.Equal("Treat2", sut.Treatment);
        }
示例#16
0
 public ComparisonOfMeansPowerAnalysisDatasetBasedInputsValidator(ComparisonOfMeansPowerAnalysisDatasetBasedInputsModel mc)
     : base(mc.DataTable)
 {
     mcVariables = mc;
 }