public async Task SMA22()
        {
            string testName = "SMA22";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID         = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response          = "Resp1";
            model.Treatment         = "Treat1";
            model.Significance      = "0.05";
            model.PlottingRangeType = PlottingRangeTypeOption.SampleSize;
            model.SampleSizeFrom    = 80;
            model.SampleSizeTo      = 50;

            //Act
            HttpResponseMessage response = await client.PostAsync("Analyses/OneWayANOVAPowerAnalysisDatasetBasedInputs", 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("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, errors);
        }
        public async Task SMA25()
        {
            string testName = "SMA25";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response  = "Resp1";
            model.ResponseTransformation = "Square Root";
            model.Treatment         = "Treat1";
            model.Significance      = "0.1";
            model.PlottingRangeType = PlottingRangeTypeOption.Power;
            model.PowerFrom         = 70;
            model.PowerTo           = 90;

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

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

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

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
Exemple #3
0
        public void LoadArguments_ReturnsCorrectArguments()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            OneWayANOVAPowerAnalysisDatasetBasedInputsModel sut = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

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

            arguments.Add(new Argument {
                Name = "GraphTitle"
            });
            arguments.Add(new Argument {
                Name = "PlottingRangeType", Value = "SampleSize"
            });
            arguments.Add(new Argument {
                Name = "PowerFrom"
            });
            arguments.Add(new Argument {
                Name = "PowerTo"
            });
            arguments.Add(new Argument {
                Name = "Response", Value = "Resp1"
            });
            arguments.Add(new Argument {
                Name = "ResponseTransformation", Value = "Log10"
            });
            arguments.Add(new Argument {
                Name = "SampleSizeFrom", Value = "6"
            });
            arguments.Add(new Argument {
                Name = "SampleSizeTo", Value = "15"
            });
            arguments.Add(new Argument {
                Name = "Significance", Value = "0.05"
            });
            arguments.Add(new Argument {
                Name = "Treatment", Value = "Treat2"
            });

            Assert.Equal(10, arguments.Count);

            //Act
            sut.LoadArguments(arguments);

            //Assert
            Assert.Null(sut.GraphTitle);
            Assert.Equal(PlottingRangeTypeOption.SampleSize, sut.PlottingRangeType);
            Assert.Null(sut.PowerFrom);
            Assert.Null(sut.PowerTo);
            Assert.Equal("Resp1", sut.Response);
            Assert.Equal("Log10", sut.ResponseTransformation);
            Assert.Equal(6, sut.SampleSizeFrom);
            Assert.Equal(15, sut.SampleSizeTo);
            Assert.Equal("0.05", sut.Significance);
            Assert.Equal("Treat2", sut.Treatment);
        }
Exemple #4
0
        public void ScriptFileName_ReturnsCorrectString()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            OneWayANOVAPowerAnalysisDatasetBasedInputsModel sut = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            //Act
            string result = sut.ScriptFileName;

            //Assert
            Assert.Equal("OneWayANOVAPowerAnalysisDatasetBasedInputs", result);
        }
Exemple #5
0
        public void GetCommandLineArguments_ReturnsCorrectString()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            OneWayANOVAPowerAnalysisDatasetBasedInputsModel sut = GetModel();

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

            //Assert
            Assert.Equal("DatasetValues Resp1 Log10 Treat2 0.05 SampleSize 6 15 NULL", result);
        }
Exemple #6
0
        public void GetArguments_ReturnsCorrectArguments()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            OneWayANOVAPowerAnalysisDatasetBasedInputsModel sut = GetModel();

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

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

            Assert.Null(graphTitle.Value);

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

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

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

            Assert.Null(powerFrom.Value);

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

            Assert.Null(powerTo.Value);

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

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

            var responseTransformation = result.Single(x => x.Name == "ResponseTransformation");

            Assert.Equal("Log10", responseTransformation.Value);

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

            Assert.Equal("6", sampleSizeFrom.Value);

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

            Assert.Equal("15", 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);
        }
Exemple #7
0
        public void TransformationsList_ReturnsCorrectList()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            OneWayANOVAPowerAnalysisDatasetBasedInputsModel sut = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

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

            //Assert
            Assert.IsAssignableFrom <IEnumerable <string> >(result);
            Assert.Equal(new List <string>()
            {
                "None", "Log10", "Loge", "Square Root", "ArcSine", "Rank"
            }, result);
        }
Exemple #8
0
        public void SignificancesList_ReturnsCorrectList()
        {
            //Arrange
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            OneWayANOVAPowerAnalysisDatasetBasedInputsModel sut = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

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

            //Assert
            Assert.IsAssignableFrom <IEnumerable <string> >(result);
            Assert.Equal(new List <string>()
            {
                "0.1", "0.05", "0.025", "0.01", "0.001"
            }, result);
        }
Exemple #9
0
        private OneWayANOVAPowerAnalysisDatasetBasedInputsModel GetModel()
        {
            var model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel
            {
                GraphTitle             = null,
                PlottingRangeType      = PlottingRangeTypeOption.SampleSize,
                PowerFrom              = null,
                PowerTo                = null,
                Response               = "Resp1",
                ResponseTransformation = "Log10",
                SampleSizeFrom         = 6,
                SampleSizeTo           = 15,
                Significance           = "0.05",
                Treatment              = "Treat2"
            };

            return(model);
        }
        public async Task SMA26()
        {
            string testName = "SMA26";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response  = "Resp5";
            model.ResponseTransformation = "ArcSine";
            model.Treatment         = "Treat2";
            model.Significance      = "0.05";
            model.PlottingRangeType = PlottingRangeTypeOption.Power;
            model.PowerFrom         = 50;
            model.PowerTo           = 70;

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

            IEnumerable <string> warnings = await Helpers.ExtractWarnings(response);

            //Assert
            Assert.Contains("The Response (Resp5) contains missing data. Any rows of the dataset that contain missing responses will be excluded prior to the analysis.", warnings);
            Helpers.SaveOutput("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, warnings);

            //Act - ignore warnings
            var modelIgnoreWarnings = model.ToKeyValue();

            modelIgnoreWarnings.Add("ignoreWarnings", "true");
            StatsOutput statsOutput = await Helpers.SubmitAnalysis(client, "OneWayANOVAPowerAnalysisDatasetBasedInputs", new FormUrlEncodedContent(modelIgnoreWarnings));

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

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

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
        public async Task SMA6()
        {
            string testName = "SMA6";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID    = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response     = "Resp5";
            model.Treatment    = "Treat1";
            model.Significance = "0.05";

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

            IEnumerable <string> warnings = await Helpers.ExtractWarnings(response);

            //Assert
            Assert.Contains("The Response (Resp5) contains missing data. Any rows of the dataset that contain missing responses will be excluded prior to the analysis.", warnings);
            Helpers.SaveOutput("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, warnings);
        }
        public async Task SMA3()
        {
            string testName = "SMA3";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID    = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response     = "Resp3";
            model.Treatment    = "Treat2";
            model.Significance = "0.05";

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

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

            //Assert
            Assert.Contains("There are no observations recorded on the levels of the Treatment (Treat2). Please amend the dataset prior to running the analysis.", errors);
            Helpers.SaveOutput("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, errors);
        }
        public async Task SMA1()
        {
            string testName = "SMA1";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID    = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response     = "Resp1";
            model.Treatment    = "Resp1";
            model.Significance = "0.05";

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

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

            //Assert
            Assert.Contains("Response (Resp1) has been selected in more than one input category, please change your input options.", errors);
            Helpers.SaveOutput("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, errors);
        }
        public async Task SMA7()
        {
            string testName = "SMA7";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID    = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response     = "Resp1";
            model.Treatment    = "Treat4";
            model.Significance = "0.05";

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

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

            //Assert
            Assert.Contains("The Treatment factor (Treat4) has only one level present in the dataset. Please select another factor.", errors);
            Helpers.SaveOutput("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, errors);
        }
        public async Task SMA4()
        {
            string testName = "SMA4";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID    = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response     = "Resp1";
            model.Treatment    = "Treat3";
            model.Significance = "0.05";

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

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

            //Assert
            Assert.Contains("The Treatment (Treat3) contains missing data where there are observations present in the Response. Please check the input data and make sure the data was entered correctly.", errors);
            Helpers.SaveOutput("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, errors);
        }
        public async Task SMA14()
        {
            string testName = "SMA14";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID    = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response     = "Resp8";
            model.Treatment    = "Treat6";
            model.Significance = "0.05";

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
        public async Task SMA13()
        {
            string testName = "SMA13";

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

            OneWayANOVAPowerAnalysisDatasetBasedInputsModel model = new OneWayANOVAPowerAnalysisDatasetBasedInputsModel();

            model.DatasetID = _factory.SheetNames.Single(x => x.Value == "Power - One-way ANOVA").Key;
            model.Response  = "Resp1";
            model.ResponseTransformation = "ArcSine";
            model.Treatment    = "Treat1";
            model.Significance = "0.05";

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

            IEnumerable <string> warnings = await Helpers.ExtractWarnings(response);

            //Assert
            Assert.Contains("You have ArcSine transformed the Resp1 variable. Unfortunately some of the Resp1 values are <0 or >1. These values have been ignored in the analysis as it is not possible to transform them.", warnings);
            Helpers.SaveOutput("OneWayANOVAPowerAnalysisDatasetBasedInputs", testName, warnings);
        }
Exemple #18
0
 public OneWayANOVAPowerAnalysisDatasetBasedInputsValidator(OneWayANOVAPowerAnalysisDatasetBasedInputsModel ow)
     : base(ow.DataTable)
 {
     owVariables = ow;
 }
 public async Task <IActionResult> OneWayANOVAPowerAnalysisDatasetBasedInputs(OneWayANOVAPowerAnalysisDatasetBasedInputsModel model, bool ignoreWarnings)
 {
     return(await RunAnalysis(model, ignoreWarnings));
 }