public void Get_ReleaseWithMultipleComponents_ComponentsAreOrderdByBuildDefinition() { //Arrange var request = new GetReleasesHttpRequestMessageBuilder().WithShowComponentsHeader(true).Build(); var expectedRelease = new ReleaseBuilder().Build(); var expectedComponentBuilder = new ComponentBuilder().ForRelease(expectedRelease); var expectedComponentWithBuildDefinitionA = expectedComponentBuilder.WithBuildDefinition("A").Build(); var expectedComponentWithBuildDefinitionB = expectedComponentBuilder.WithBuildDefinition("B").Build(); var expectedComponentWithBuildDefinitionC = expectedComponentBuilder.WithBuildDefinition("C").Build(); var dataModel = new DataModelBuilder() .WithRelease(expectedRelease) //add components in 'random' order to check sorting of components by build definition .WithComponent(expectedComponentWithBuildDefinitionB) .WithComponent(expectedComponentWithBuildDefinitionA) .WithComponent(expectedComponentWithBuildDefinitionC) .Build(); _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>())) .Returns(dataModel); //Act dynamic result = _sut.Get(request); //Assert Assert.IsNotNull(result, "Unexpected result"); Assert.AreEqual(expectedComponentWithBuildDefinitionA.Build, result.releases[0].components[0].build, "Unexpected first component"); Assert.AreEqual(expectedComponentWithBuildDefinitionB.Build, result.releases[0].components[1].build, "Unexpected second component"); Assert.AreEqual(expectedComponentWithBuildDefinitionC.Build, result.releases[0].components[2].build, "Unexpected third component"); }
public static void Init(TestContext testContext) { var dm = new DataModelBuilder(); string databaseDir = @"..\..\..\..\Actual Data\access_db"; DataModelTestBase.DataModel = dm.CreateDataModel(databaseDir, @"..\..\file.dsn"); }
public void Get_ReleaseWithComponentButShowComponentsHeaderIsFalse_NoComponentReturned() { //Arrange var requestWithShowComponentsHeaderIsFalse = new GetReleasesHttpRequestMessageBuilder() .WithShowComponentsHeader(false) .Build(); var expectedRelease = new ReleaseBuilder().Build(); var component = new ComponentBuilder().ForRelease(expectedRelease).Build(); var dataModel = new DataModelBuilder() .WithRelease(expectedRelease) .WithComponent(component) .Build(); _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>())) .Returns(dataModel); //Act dynamic result = _sut.Get(requestWithShowComponentsHeaderIsFalse); //Assert Assert.IsNotNull(result, "Unexpected result"); var actualRelease = result.releases[0]; Assert.IsInstanceOfType(actualRelease.components, typeof(List <dynamic>), "Unexpected type for components collection"); Assert.AreEqual(0, actualRelease.components.Count, "Unexpected number of components for release"); }
public void Get_MultipleReleasesFound_MultipleReleasesReturned() { //Arrange var request = new GetReleasesHttpRequestMessageBuilder().Build(); var expectedRelease1 = new ReleaseBuilder().Build(); var expectedRelease2 = new ReleaseBuilder().Build(); var expectedRelease3 = new ReleaseBuilder().Build(); var dataModel = new DataModelBuilder() .WithRelease(expectedRelease1) .WithRelease(expectedRelease2) .WithRelease(expectedRelease3) .Build(); _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>())) .Returns(dataModel); //Act dynamic result = _sut.Get(request); //Assert Assert.IsNotNull(result, "Unexpected result"); Assert.IsInstanceOfType(result.releases, typeof(List <dynamic>), "Unexpected type for releases collection"); List <dynamic> actualReleases = (List <dynamic>)result.releases; Assert.AreEqual(3, actualReleases.Count, "Unexpected number of releases"); AssertReleasesCollectionContainsRelease(actualReleases, expectedRelease1); AssertReleasesCollectionContainsRelease(actualReleases, expectedRelease2); AssertReleasesCollectionContainsRelease(actualReleases, expectedRelease3); }
public RollbarClient(Configuration configuration) { Configuration = configuration; NoticeBuilder = new DataModelBuilder(Configuration); // HACK: Bypasses cert validation globally, but only for api.rollbar.com. Would prefer the below HttpWebRequest per-request edition. ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => certificate.Subject.StartsWith("CN=api.rollbar.com,"); }
public void Get_ReleaseWithStageAndStepFound_ReleaseWithStageAndStepReturned() { //Arrange var request = new GetReleasesHttpRequestMessageBuilder().Build(); var expectedRelease = new ReleaseBuilder().Build(); var expectedEnvironment = new EnvironmentBuilder().Build(); var expectedStage = new StageBuilder().ForEnvironment(expectedEnvironment).Build(); var expectedStep = new StepBuilder() .ForRelease(expectedRelease) .ForStage(expectedStage) .Build(); var expectedDeploymentStep = new DeploymentStepBuilder() .ForRelease(expectedRelease) .ForStage(expectedStage) .ForStep(expectedStep) .Build(); var dataModel = new DataModelBuilder() .WithRelease(expectedRelease) .WithEnvironment(expectedEnvironment) .WithStage(expectedStage) .WithStageWorkflowFor(expectedRelease, expectedStage) .WithStep(expectedStep) .WithDeploymentStep(expectedDeploymentStep) .Build(); _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>())) .Returns(dataModel); //Act dynamic result = _sut.Get(request); //Assert Assert.IsNotNull(result, "Unexpected result"); Assert.IsInstanceOfType(result.releases, typeof(List <dynamic>), "Unexpected type for releases collection"); Assert.AreEqual(1, result.releases.Count, "Unexpected number of releases"); var actualRelease = result.releases[0]; AssertAreReleasesEqual(expectedRelease, actualRelease); Assert.IsInstanceOfType(actualRelease.stages, typeof(List <dynamic>), "Unexpected type for stages collection"); Assert.AreEqual(1, actualRelease.stages.Count, "Unexpected number of stages for release"); var actualStage = actualRelease.stages[0]; AssertAreStagesEqual(expectedStage, expectedEnvironment, actualStage); Assert.IsInstanceOfType(actualStage.steps, typeof(List <dynamic>), "Unexpected type for steps collection"); Assert.AreEqual(1, actualStage.steps.Count, "Unexpected number of steps for stage"); var actualStep = actualStage.steps[0]; AssertAreStepsEqual(expectedStep, actualStep); Assert.IsInstanceOfType(actualStep.deploymentSteps, typeof(List <dynamic>), "Unexpected type for deploymentStep collection"); Assert.AreEqual(1, actualStep.deploymentSteps.Count, "Unexpected number of steps for deploymentSteps"); AssertAreDeploymentStepsEqual(expectedDeploymentStep, actualStep.deploymentSteps[0]); }
public void when_calling_send_task_returns_and_can_be_used() { var client = new RollbarClient(); var message = ""; var notice = new DataModelBuilder().CreateMessageNotice(message, "debug"); var task = client.Send(notice, null); Assert.IsNotNull(task); Assert.DoesNotThrow(() => task.Wait(0)); }
public void Get_ValidRequest_LastRefreshIsNow() { //Arrange var request = new GetReleasesHttpRequestMessageBuilder().Build(); var dataModel = new DataModelBuilder().WithDefaultDataSet().Build(); _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>())) .Returns(dataModel); //Act dynamic result = _sut.Get(request); //Assert Assert.IsNotNull(result, "Unexpected result"); AssertionHelper.AssertDateTimeIsNow(result.lastRefresh); }
public void Get_StageWithMultipleSteps_StepsAreOrderdByAttemptAndThenByRank() { //Arrange var request = new GetReleasesHttpRequestMessageBuilder().Build(); var expectedRelease = new ReleaseBuilder().Build(); var expectedEnvironment = new EnvironmentBuilder().Build(); var expectedStage = new StageBuilder().ForEnvironment(expectedEnvironment).Build(); var expectedStepBuilder = new StepBuilder().ForRelease(expectedRelease).ForStage(expectedStage); var expectedStepWithAttempt1AndRank1 = expectedStepBuilder.WithAttempt(1).WithRank(1).Build(); var expectedStepWithAttempt1AndRank2 = expectedStepBuilder.WithAttempt(1).WithRank(2).Build(); var expectedStepWithAttempt1AndRank3 = expectedStepBuilder.WithAttempt(1).WithRank(3).Build(); var expectedStepWithAttempt2AndRank1 = expectedStepBuilder.WithAttempt(2).WithRank(1).Build(); var expectedStepWithAttempt2AndRank2 = expectedStepBuilder.WithAttempt(2).WithRank(2).Build(); var dataModel = new DataModelBuilder() .WithRelease(expectedRelease) .WithEnvironment(expectedEnvironment) .WithStage(expectedStage) .WithStageWorkflowFor(expectedRelease, expectedStage) //add steps in 'random' order to check sorting of steps by attempt and then by rank .WithStep(expectedStepWithAttempt2AndRank2) .WithStep(expectedStepWithAttempt1AndRank2) .WithStep(expectedStepWithAttempt1AndRank1) .WithStep(expectedStepWithAttempt1AndRank3) .WithStep(expectedStepWithAttempt2AndRank1) .Build(); _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>())) .Returns(dataModel); //Act dynamic result = _sut.Get(request); //Assert Assert.IsNotNull(result, "Unexpected result"); var stage = result.releases[0].stages[0]; Assert.AreEqual(expectedStepWithAttempt1AndRank1.Id, stage.steps[0].id, "Unexpected first step"); Assert.AreEqual(expectedStepWithAttempt1AndRank2.Id, stage.steps[1].id, "Unexpected second step"); Assert.AreEqual(expectedStepWithAttempt1AndRank3.Id, stage.steps[2].id, "Unexpected third step"); Assert.AreEqual(expectedStepWithAttempt2AndRank1.Id, stage.steps[3].id, "Unexpected fourth step"); Assert.AreEqual(expectedStepWithAttempt2AndRank2.Id, stage.steps[4].id, "Unexpected fifth step"); }
public void Get_ValidRequest_UrlReleaseExplorerReturned() { //Arrange var request = new GetReleasesHttpRequestMessageBuilder().Build(); var dataModel = new DataModelBuilder().WithDefaultDataSet().Build(); _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>())) .Returns(dataModel); //Act dynamic result = _sut.Get(request); //Assert Assert.IsNotNull(result, "Unexpected result"); Assert.IsNotNull(result.urlReleaseExplorer, "Unexpected url Release Explorer"); Assert.AreNotEqual("", result.urlReleaseExplorer, "Unexpected url Release Explorer"); }
public virtual double evaluate(RecommenderBuilder recommenderBuilder, DataModelBuilder dataModelBuilder, DataModel dataModel, double trainingPercentage, double evaluationPercentage) { log.info("Beginning evaluation using {} of {}", new object[] { trainingPercentage, dataModel }); int num = dataModel.getNumUsers(); FastByIDMap <PreferenceArray> trainingPrefs = new FastByIDMap <PreferenceArray>(1 + ((int)(evaluationPercentage * num))); FastByIDMap <PreferenceArray> testPrefs = new FastByIDMap <PreferenceArray>(1 + ((int)(evaluationPercentage * num))); IEnumerator <long> enumerator = dataModel.getUserIDs(); while (enumerator.MoveNext()) { long current = enumerator.Current; if (this.random.nextDouble() < evaluationPercentage) { this.splitOneUsersPrefs(trainingPercentage, trainingPrefs, testPrefs, current, dataModel); } } DataModel model = (dataModelBuilder == null) ? new GenericDataModel(trainingPrefs) : dataModelBuilder.buildDataModel(trainingPrefs); Recommender recommender = recommenderBuilder.buildRecommender(model); double num3 = this.getEvaluation(testPrefs, recommender); log.info("Evaluation result: {}", new object[] { num3 }); return(num3); }
public RollbarClient(Configuration configuration) { Configuration = configuration; NoticeBuilder = new DataModelBuilder(Configuration); }
public IRStatistics evaluate(RecommenderBuilder recommenderBuilder, DataModelBuilder dataModelBuilder, DataModel dataModel, IDRescorer rescorer, int at, double relevanceThreshold, double evaluationPercentage) { int num = dataModel.getNumItems(); RunningAverage average = new FullRunningAverage(); RunningAverage average2 = new FullRunningAverage(); RunningAverage average3 = new FullRunningAverage(); RunningAverage average4 = new FullRunningAverage(); int num2 = 0; int num3 = 0; IEnumerator <long> enumerator = dataModel.getUserIDs(); while (enumerator.MoveNext()) { long current = enumerator.Current; if (this.random.nextDouble() < evaluationPercentage) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); PreferenceArray prefs = dataModel.getPreferencesFromUser(current); double num5 = double.IsNaN(relevanceThreshold) ? computeThreshold(prefs) : relevanceThreshold; FastIDSet relevantItemIDs = this.dataSplitter.getRelevantItemsIDs(current, at, num5, dataModel); int num6 = relevantItemIDs.size(); if (num6 > 0) { FastByIDMap <PreferenceArray> trainingUsers = new FastByIDMap <PreferenceArray>(dataModel.getNumUsers()); IEnumerator <long> enumerator2 = dataModel.getUserIDs(); while (enumerator2.MoveNext()) { this.dataSplitter.processOtherUser(current, relevantItemIDs, trainingUsers, enumerator2.Current, dataModel); } DataModel model = (dataModelBuilder == null) ? new GenericDataModel(trainingUsers) : dataModelBuilder.buildDataModel(trainingUsers); try { model.getPreferencesFromUser(current); } catch (NoSuchUserException) { continue; } int num7 = num6 + model.getItemIDsFromUser(current).size(); if (num7 >= (2 * at)) { Recommender recommender = recommenderBuilder.buildRecommender(model); int num8 = 0; List <RecommendedItem> list = recommender.recommend(current, at, rescorer); foreach (RecommendedItem item in list) { if (relevantItemIDs.contains(item.getItemID())) { num8++; } } int count = list.Count; if (count > 0) { average.addDatum(((double)num8) / ((double)count)); } average2.addDatum(((double)num8) / ((double)num6)); if (num6 < num7) { average3.addDatum(((double)(count - num8)) / ((double)(num - num6))); } double num10 = 0.0; double num11 = 0.0; for (int i = 0; i < count; i++) { RecommendedItem item2 = list[i]; double num13 = 1.0 / log2(i + 2.0); if (relevantItemIDs.contains(item2.getItemID())) { num10 += num13; } if (i < num6) { num11 += num13; } } if (num11 > 0.0) { average4.addDatum(num10 / num11); } num2++; if (count > 0) { num3++; } stopwatch.Stop(); log.info("Evaluated with user {} in {}ms", new object[] { current, stopwatch.ElapsedMilliseconds }); log.info("Precision/recall/fall-out/nDCG/reach: {} / {} / {} / {} / {}", new object[] { average.getAverage(), average2.getAverage(), average3.getAverage(), average4.getAverage(), ((double)num3) / ((double)num2) }); } } } } return(new IRStatisticsImpl(average.getAverage(), average2.getAverage(), average3.getAverage(), average4.getAverage(), ((double)num3) / ((double)num2))); }