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

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

            ChiSquaredAndFishersExactTestModel model = new ChiSquaredAndFishersExactTestModel();

            model.DatasetID          = _factory.SheetNames.Single(x => x.Value == "Chi-sq and Fishers Exact").Key;
            model.Response           = "CountEF";
            model.GroupingFactor     = "Bin(E";
            model.ResponseCategories = "Bin(F";
            model.ChiSquaredTest     = true;
            model.FishersExactTest   = true;
            model.BarnardsTest       = true;
            model.Hypothesis         = "Greater-than";

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

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

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

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
Exemplo n.º 2
0
        public async Task SURV16()
        {
            string testName = "SURV16";

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

            SurvivalAnalysisModel model = new SurvivalAnalysisModel();

            model.DatasetID             = _factory.SheetNames.Single(x => x.Value == "Survival").Key;
            model.Response              = "Resp4";
            model.Treatment             = "Group 8";
            model.Censorship            = "Censor9";
            model.CompareSurvivalCurves = true;

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

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

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

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
Exemplo n.º 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.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
Exemplo n.º 4
0
        public static async Task <StatsOutput> SubmitAnalysis(HttpClient client, string analysisName, FormUrlEncodedContent content)
        {
            HttpResponseMessage response = await client.PostAsync("Analyses/" + analysisName, content);

            HtmlDocument doc = await GetHtml(response);

            var scriptBlock = doc.DocumentNode.Descendants().LastOrDefault(n => n.Name == "script");

            if (scriptBlock == null)
            {
                throw new InvalidOperationException("HTML OUTPUT ERROR:" + doc.ParsedText);
            }

            if (String.IsNullOrEmpty(scriptBlock.InnerText))
            {
                throw new InvalidOperationException("ERRORS/WARNINGS PREVENTED ANALYSIS:" + doc.ParsedText);
            }
            else if (doc.ParsedText.Contains("An unhandled exception occurred while processing the request."))
            {
                string error = doc.DocumentNode.Descendants().First(x => x.HasClass("titleerror")).InnerText;
                throw new InvalidOperationException(error);
            }

            string analysisGuid = scriptBlock.InnerText.Split("\"", StringSplitOptions.RemoveEmptyEntries)[1];

            string jsonResponse = null;

            while (jsonResponse != "true")
            {
                Thread.Sleep(1000);
                HttpResponseMessage completedResponse = await client.PostAsync("/Analyses/AnalysisCompleted?analysisGuid=" + analysisGuid, null);

                jsonResponse = await completedResponse.Content.ReadAsStringAsync();
            }

            HttpResponseMessage viewResultsResponse = await client.GetAsync("/Analyses/ViewResults?analysisGuid=" + analysisGuid);

            HtmlDocument htmlResultsOutputDocument = await GetHtml(viewResultsResponse);

            HtmlNode resultsOutputNode = htmlResultsOutputDocument.GetElementbyId("resultsOutput");

            string formattedHtml = null;

            if (resultsOutputNode != null) //if its null then an error has occurred but we don't throw here as we still want the log
            {
                string rawHtml = resultsOutputNode.InnerHtml;
                formattedHtml = File.ReadAllText("ResultFormatting.txt") + rawHtml;
            }


            HttpResponseMessage viewLogOutput = await client.GetAsync("/Analyses/ViewLog?analysisGuid=" + analysisGuid);

            HtmlDocument htmlLogOutputDocument = await GetHtml(viewLogOutput);

            HtmlNode logOutputNode = htmlLogOutputDocument.GetElementbyId("logOutput");

            StatsOutput statsOutput = new StatsOutput(formattedHtml, logOutputNode.InnerText);

            return(statsOutput);
        }
Exemplo n.º 5
0
        public async Task PVA18()
        {
            string testName = "PVA18";

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

            PValueAdjustmentUserBasedInputsModel model = new PValueAdjustmentUserBasedInputsModel();

            model.PValues      = "<0.001,0.4";
            model.SelectedTest = "Hochberg";
            model.Significance = "0.10";

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

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

            //Assert
            Assert.Contains("You have entered unadjusted p-value(s) of the form <0.001. For the purposes of the numerical calculations this value has been replaced with 0.00099 and hence the adjusted p-values may be unduly conservative.", warnings);
            Helpers.SaveOutput("PValueAdjustmentUserBasedInputs", testName, warnings);

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

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

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

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

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

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

            OneSampleTTestAnalysisModel model = new OneSampleTTestAnalysisModel();

            model.DatasetID = _factory.SheetNames.Single(x => x.Value == "One Sample t-test").Key;
            model.Responses = new string[] { "Resp 1", "Resp2", "Resp 3", "Resp4" };
            model.ResponseTransformation = "None";
            model.Significance           = "0.05";
            model.TargetValue            = 1m;

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
Exemplo n.º 7
0
        public async Task PSS18()
        {
            string testName = "PSS18";

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

            OneWayANOVAPowerAnalysisUserBasedInputsModel model = new OneWayANOVAPowerAnalysisUserBasedInputsModel();

            model.Means = "3.5,3.75,5.5,8";
            model.VariabilityEstimate = VariabilityEstimate.Variance;
            model.Variance            = 8;
            model.Significance        = "0.001";
            model.PlottingRangeType   = PlottingRangeTypeOption.SampleSize;
            model.SampleSizeFrom      = 2;
            model.SampleSizeTo        = 20;

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

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

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

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
Exemplo n.º 8
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.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
        public async Task PVA2()
        {
            string testName = "PVA2";

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

            PValueAdjustmentDatasetBasedInputsModel model = new PValueAdjustmentDatasetBasedInputsModel();

            model.DatasetID     = _factory.SheetNames.Single(x => x.Value == "P-value Adjustment Dataset").Key;
            model.PValues       = "p-value - PVA2";
            model.DatasetLabels = "Comparison - PVA2";
            model.SelectedTest  = "Hochberg";
            model.Significance  = "0.05";

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

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

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

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

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

            ComparisonOfMeansPowerAnalysisUserBasedInputsModel model = new ComparisonOfMeansPowerAnalysisUserBasedInputsModel();

            model.GroupMean         = 10;
            model.DeviationType     = DeviationType.StandardDeviation;
            model.StandardDeviation = 2;
            model.Significance      = "0.1";
            model.AbsoluteChange    = "0.5,1,2,4";
            model.ChangeType        = ChangeTypeOption.Absolute;
            model.PlottingRangeType = PlottingRangeTypeOption.Power;

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

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

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

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

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

            UnpairedTTestAnalysisModel model = new UnpairedTTestAnalysisModel();

            model.DatasetID = _factory.SheetNames.Single(x => x.Value == "Unpaired t-test").Key;
            model.Response  = "PVTestresponse2";
            model.ResponseTransformation = "None";
            model.Treatment = "PVTestgroup";
            model.NormalProbabilityPlotSelected    = true;
            model.ResidualsVsPredictedPlotSelected = true;

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
        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));
        }
Exemplo n.º 13
0
        public async Task MVA24()
        {
            string testName = "MVA24";

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

            MultivariateAnalysisModel model = new MultivariateAnalysisModel();

            model.DatasetID = _factory.SheetNames.Single(x => x.Value == "Multivariate").Key;
            model.Responses = new string[] { "Sepal length", "Sepal width", "Petal width", "Petal length" };
            model.ResponseTransformation = "Square Root";
            model.CategoricalPredictor   = "Categorical Binary 2";
            model.CaseID       = "Case ID";
            model.AnalysisType = MultivariateAnalysisModel.AnalysisOption.LinearDiscriminantAnalysis;

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
Exemplo n.º 14
0
        public async Task PSS23()
        {
            string testName = "PSS23";

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

            OneWayANOVAPowerAnalysisUserBasedInputsModel model = new OneWayANOVAPowerAnalysisUserBasedInputsModel();

            model.Means = "3.5,3.75,5.5,8";
            model.VariabilityEstimate = VariabilityEstimate.StandardDeviation;
            model.StandardDeviation   = 3;
            model.Significance        = "0.05";
            model.PlottingRangeType   = PlottingRangeTypeOption.Power;
            model.PowerFrom           = 50;
            model.PowerTo             = 70;

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
Exemplo n.º 15
0
        public async Task SS22()
        {
            string testName = "SS22";

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

            SummaryStatisticsModel model = new SummaryStatisticsModel();

            model.DatasetID      = _factory.SheetNames.Single(x => x.Value == "Summary Statistics").Key;
            model.Responses      = new string[] { "Resp 2", "Resp8", "Resp9" };
            model.Transformation = "Log10";
            model.Mean           = true;
            model.N = true;
            model.StandardDeviation      = true;
            model.Variance               = true;
            model.StandardErrorOfMean    = true;
            model.MinAndMax              = true;
            model.MedianAndQuartiles     = true;
            model.CoefficientOfVariation = true;
            model.NormalProbabilityPlot  = true;
            model.CoefficientOfVariation = true;
            model.ByCategoriesAndOverall = true;
            model.ConfidenceInterval     = true;

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

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

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

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
Exemplo n.º 16
0
        public static async Task <StatsOutput> SubmitAnalysis(HttpClient client, string analysisName, FormUrlEncodedContent content)
        {
            HttpResponseMessage response = await client.PostAsync("Analyses/" + analysisName, content);

            HtmlDocument doc = await GetHtml(response);

            string script = doc.DocumentNode.Descendants().Last(n => n.Name == "script").InnerText;

            if (String.IsNullOrEmpty(script))
            {
                throw new InvalidOperationException("script is null - warnings/errors present?");
            }
            else if (doc.ParsedText.Contains("An unhandled exception occurred while processing the request."))
            {
                string error = doc.DocumentNode.Descendants().First(x => x.HasClass("titleerror")).InnerText;
                throw new InvalidOperationException(error);
            }

            string analysisGuid = script.Split("\"", StringSplitOptions.RemoveEmptyEntries)[1];

            string jsonResponse = null;

            while (jsonResponse != "true")
            {
                Thread.Sleep(1000);
                HttpResponseMessage completedResponse = await client.PostAsync("/Analyses/AnalysisCompleted?analysisGuid=" + analysisGuid, null);

                jsonResponse = await completedResponse.Content.ReadAsStringAsync();
            }

            HttpResponseMessage viewResultsResponse = await client.GetAsync("/Analyses/ViewResults?analysisGuid=" + analysisGuid);

            HtmlDocument htmlResultsOutputDocument = await GetHtml(viewResultsResponse);

            HtmlNode resultsOutputNode = htmlResultsOutputDocument.GetElementbyId("resultsOutput");

            if (resultsOutputNode == null)
            {
                throw new Exception("No results output!");
            }

            string rawHtml       = resultsOutputNode.InnerHtml;
            string formattedHtml = File.ReadAllText("ResultFormatting.txt") + rawHtml;

            HttpResponseMessage viewLogOutput = await client.GetAsync("/Analyses/ViewLog?analysisGuid=" + analysisGuid);

            HtmlDocument htmlLogOutputDocument = await GetHtml(viewLogOutput);

            HtmlNode logOutputNode = htmlLogOutputDocument.GetElementbyId("logOutput");

            StatsOutput statsOutput = new StatsOutput(formattedHtml, logOutputNode.InnerText);

            return(statsOutput);
        }
Exemplo n.º 17
0
        public async Task SS28()
        {
            string testName = "SS28";

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

            SummaryStatisticsModel model = new SummaryStatisticsModel();

            model.DatasetID      = _factory.SheetNames.Single(x => x.Value == "Summary Statistics").Key;
            model.Responses      = new string[] { "Resp 2", "Resp3", "Resp6" };
            model.FirstCatFactor = "Cat6";
            model.Transformation = "ArcSine";
            model.Mean           = true;
            model.N = true;
            model.StandardDeviation      = true;
            model.Variance               = true;
            model.StandardErrorOfMean    = true;
            model.MinAndMax              = true;
            model.MedianAndQuartiles     = true;
            model.CoefficientOfVariation = true;
            model.NormalProbabilityPlot  = true;
            model.CoefficientOfVariation = true;
            model.ByCategoriesAndOverall = true;
            model.ConfidenceInterval     = true;
            model.Significance           = 95;

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

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

            //Assert
            Assert.Contains("You have ArcSine transformed the Resp3 variable. Unfortunately some of the Resp3 values are <0 or >1. These values have been ignored in the analysis as it is not possible to transform them.", warnings);
            Helpers.SaveOutput("SummaryStatistics", testName, warnings);

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

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
Exemplo n.º 18
0
        public async Task CHI27()
        {
            string testName = "CHI27";

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

            ChiSquaredAndFishersExactTestModel model = new ChiSquaredAndFishersExactTestModel();

            model.DatasetID          = _factory.SheetNames.Single(x => x.Value == "Chi-sq and Fishers Exact").Key;
            model.Response           = "CountGH";
            model.GroupingFactor     = "TreatmentG";
            model.ResponseCategories = "TreatmentH";
            model.ChiSquaredTest     = true;
            model.FishersExactTest   = true;
            model.BarnardsTest       = true;
            model.Hypothesis         = "Greater-than";

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

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

            //Assert
            Assert.Contains("Grouping factor or the Response categories have more than two levels. Barnard&#x27;s test can only be performed when there are two levels of the Grouping factor and two Response categories.", warnings);
            Helpers.SaveOutput("ChiSquaredAndFishersExactTest", testName, warnings);

            //Act - ignore warnings
            model.BarnardsTest = true; //Deselecting Barnards test!
            var modelIgnoreWarnings = model.ToKeyValue();

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
        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));
        }
Exemplo n.º 20
0
        public async Task PVA8()
        {
            string testName = "PVA8";

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

            PValueAdjustmentUserBasedInputsModel model = new PValueAdjustmentUserBasedInputsModel();

            model.PValues      = "0.06,0.1,0.2";
            model.SelectedTest = "Holm";

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
Exemplo n.º 21
0
        public async Task PVA16()
        {
            string testName = "PVA16";

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

            PValueAdjustmentUserBasedInputsModel model = new PValueAdjustmentUserBasedInputsModel();

            model.PValues      = "0.001,0.002,0.003,0.004,0.4";
            model.SelectedTest = "Hochberg";
            model.Significance = "0.10";

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

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

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

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

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

            SurvivalAnalysisModel model = new SurvivalAnalysisModel();

            model.DatasetID             = _factory.SheetNames.Single(x => x.Value == "Survival").Key;
            model.Response              = "Resp3";
            model.Treatment             = "Group 1";
            model.Censorship            = "Censor1";
            model.CompareSurvivalCurves = true;

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

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

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

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

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

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

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

            Assert.Equal(Helpers.RemoveAllImageNodes(expectedHtml), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));
        }
Exemplo n.º 23
0
        public async Task MVA15()
        {
            string testName = "MVA15";

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

            MultivariateAnalysisModel model = new MultivariateAnalysisModel();

            model.DatasetID = _factory.SheetNames.Single(x => x.Value == "Multivariate").Key;
            model.Responses = new string[] { "Sepal length", "Sepal width", "Petal width", "Petal length" };
            model.ResponseTransformation = "Log10";
            model.AnalysisType           = MultivariateAnalysisModel.AnalysisOption.PrincipalComponentsAnalysis;

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

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

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

            Assert.Equal(Helpers.FixForUnixOSs(expectedHtml), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }
        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));
        }
Exemplo n.º 25
0
        public static void SaveTestOutput(string moduleName, AnalysisModelBase analysisModel, string testName, StatsOutput statsOutput)
        {
            Directory.CreateDirectory("ActualResults");
            Directory.CreateDirectory(Path.Combine("ActualResults", moduleName));

            File.WriteAllText(Path.Combine("ActualResults", moduleName, testName + ".html"), Helpers.RemoveAllImageNodes(statsOutput.HtmlResults));

            List <string> logOutput = new List <string>();

            logOutput.Add(ObjectDumper.Dump(analysisModel));
            logOutput.Add("------------------------------------------------------------------------------------------------------------------");
            logOutput.Add(statsOutput.LogText);

            File.WriteAllLines(Path.Combine("ActualResults", moduleName, testName + ".log"), logOutput);
        }
Exemplo n.º 26
0
        public static void SaveTestOutput(string moduleName, AnalysisModelBase analysisModel, string testName, StatsOutput statsOutput)
        {
            Directory.CreateDirectory("ActualResults");
            Directory.CreateDirectory(Path.Combine("ActualResults", moduleName));

            //write the log first
            List <string> logOutput = new List <string>();

            logOutput.Add(ObjectDumper.Dump(analysisModel));
            logOutput.Add("------------------------------------------------------------------------------------------------------------------");
            logOutput.Add(statsOutput.LogText);

            File.WriteAllLines(Path.Combine("ActualResults", moduleName, testName + ".log"), logOutput);

            //write the results if it exists
            if (statsOutput.HtmlResults == null)
            {
                throw new Exception("No results output!");
            }

            File.WriteAllText(Path.Combine("ActualResults", moduleName, testName + ".html"), Helpers.FixForUnixOSs(statsOutput.HtmlResults));
        }