From ce41972061314e62bc6d0ff18bdcacae4a805b3c Mon Sep 17 00:00:00 2001 From: Markus Cozowicz Date: Fri, 22 Jul 2016 08:50:46 -0400 Subject: [PATCH] accomodate floating point issue for large number of actions improved end to end tests version bump closing issue #52 --- .../Properties/AssemblyInfo.cs | 4 +- .../Properties/AssemblyInfo.cs | 4 +- client/explore/GenericTopSlotExplorer.cs | 4 +- client/version.props | 2 +- provisioning/test/APITestDriveTest.cs | 2 +- .../test/EndToEndOnlineTrainerTest.cs | 43 ++--------- provisioning/test/ProvisionOnly.cs | 26 ------- ...sioningBaseTest.cs => ProvisioningTest.cs} | 71 ++++++++++++++++--- provisioning/test/SimplePolicyHttpTest.cs | 26 +------ provisioning/test/SimplePolicyTest.cs | 38 ++-------- provisioning/test/ds-provisioning.csproj | 3 +- 11 files changed, 82 insertions(+), 141 deletions(-) delete mode 100644 provisioning/test/ProvisionOnly.cs rename provisioning/test/{ProvisioningBaseTest.cs => ProvisioningTest.cs} (85%) diff --git a/client/ClientDecisionService/Properties/AssemblyInfo.cs b/client/ClientDecisionService/Properties/AssemblyInfo.cs index 916b92c1c..474a42f79 100644 --- a/client/ClientDecisionService/Properties/AssemblyInfo.cs +++ b/client/ClientDecisionService/Properties/AssemblyInfo.cs @@ -15,7 +15,7 @@ [assembly: System.Runtime.InteropServices.ComVisible(false)] [assembly: System.CLSCompliant(false)] [assembly: System.Runtime.InteropServices.Guid("a991c863-165c-4fd5-b388-45b13df358a8")] -[assembly: System.Reflection.AssemblyVersion("2.0.0.2")] -[assembly: System.Reflection.AssemblyFileVersion("2.0.0.2")] +[assembly: System.Reflection.AssemblyVersion("2.0.0.3")] +[assembly: System.Reflection.AssemblyFileVersion("2.0.0.3")] diff --git a/client/JoinServerUploader/Properties/AssemblyInfo.cs b/client/JoinServerUploader/Properties/AssemblyInfo.cs index abd067a8c..90a4486c0 100644 --- a/client/JoinServerUploader/Properties/AssemblyInfo.cs +++ b/client/JoinServerUploader/Properties/AssemblyInfo.cs @@ -15,7 +15,7 @@ [assembly: System.Runtime.InteropServices.ComVisible(false)] [assembly: System.CLSCompliant(true)] [assembly: System.Runtime.InteropServices.Guid("324bd225-38a8-476f-bc96-ad563697274d")] -[assembly: System.Reflection.AssemblyVersion("2.0.0.2")] -[assembly: System.Reflection.AssemblyFileVersion("2.0.0.2")] +[assembly: System.Reflection.AssemblyVersion("2.0.0.3")] +[assembly: System.Reflection.AssemblyFileVersion("2.0.0.3")] diff --git a/client/explore/GenericTopSlotExplorer.cs b/client/explore/GenericTopSlotExplorer.cs index 8abab6436..685734eff 100644 --- a/client/explore/GenericTopSlotExplorer.cs +++ b/client/explore/GenericTopSlotExplorer.cs @@ -31,8 +31,8 @@ public override ExplorerDecision MapContext(PRG prg, ActionProbability[] if (total == 0) throw new ArgumentException("At least one probability must be positive."); - if (Math.Abs(total - 1f) > 1e-6) - throw new ArgumentException("Probabilities must sum to one."); + if (Math.Abs(total - 1f) > 1e-4) + throw new ArgumentException($"Probabilities must sum to one, but {Math.Abs(total - 1f)} was received."); float draw = prg.UniformUnitInterval(); diff --git a/client/version.props b/client/version.props index 73b14d6f3..808624731 100644 --- a/client/version.props +++ b/client/version.props @@ -1,6 +1,6 @@ -2.0.0.2 +2.0.0.3 diff --git a/provisioning/test/APITestDriveTest.cs b/provisioning/test/APITestDriveTest.cs index 1e82f38a4..7646b1073 100644 --- a/provisioning/test/APITestDriveTest.cs +++ b/provisioning/test/APITestDriveTest.cs @@ -13,7 +13,7 @@ namespace Microsoft.Research.DecisionServiceTest { [TestClass] - public class APITestDriveTestClass : ProvisioningBaseTest + public class APITestDriveTestClass : ProvisioningTest { private const string deploymentOutput = @" { diff --git a/provisioning/test/EndToEndOnlineTrainerTest.cs b/provisioning/test/EndToEndOnlineTrainerTest.cs index 403078c7e..9cc6d258f 100644 --- a/provisioning/test/EndToEndOnlineTrainerTest.cs +++ b/provisioning/test/EndToEndOnlineTrainerTest.cs @@ -10,46 +10,13 @@ namespace Microsoft.Research.DecisionServiceTest { - [TestClass] - public class EndToEndTest : ProvisioningBaseTest + public partial class ProvisioningTest { - private const string deploymentOutput = @" -{ - ""management Center URL"": { - ""type"": ""String"", - ""value"": ""https://mc-sccwor75dvlcuchl6tlbcaux42.azurewebsites.net"" - }, - ""management Center Password"": { - ""type"": ""String"", - ""value"": ""vmfhd4lsmxkbk"" - }, - ""client Library URL"": { - ""type"": ""String"", - ""value"": ""https://storagesccwor75dvlcu.blob.core.windows.net/mwt-settings/client?sv=2015-07-08&sr=b&sig=lre%2BGTE9wfgXucIR62FAY8NiQQEADgbq2x26ur3bCsA%3D&st=2016-07-11T17%3A59%3A04Z&se=2017-07-11T18%3A00%3A04Z&sp=r"" - }, - ""web Service Token"": { - ""type"": ""String"", - ""value"": ""57dx6h2tw464k"" - }, - ""online Trainer Token"": { - ""type"": ""String"", - ""value"": ""votzwbdgrkcoe"" - }, - ""online Trainer URL"": { - ""type"": ""String"", - ""value"": ""http://trainer-sccwor75dvlcuchl6tlbcaux42.cloudapp.net"" - } -} - -"; - // public EndToEndTest() : base(deploymentOutput) { } - - //public EndToEndTest() - //{ - // this.deleteOnCleanup = true; - //} - + /// + /// Remove [Ignore] to run individually + /// [TestMethod] + [Ignore] [TestCategory("End to End")] [Priority(2)] public void E2ERankerStochasticRewards() diff --git a/provisioning/test/ProvisionOnly.cs b/provisioning/test/ProvisionOnly.cs deleted file mode 100644 index d513e3156..000000000 --- a/provisioning/test/ProvisionOnly.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Research.DecisionServiceTest -{ - [TestClass] - public class ProvisionOnly : ProvisioningBaseTest - { - [TestMethod] - [TestCategory("End to End")] - [Priority(2)] - public void ProvisionOnlyTest() - { - Assert.IsNotNull(this.managementCenterUrl); - Assert.IsNotNull(this.managementPassword); - Assert.IsNotNull(this.onlineTrainerUrl); - Assert.IsNotNull(this.onlineTrainerToken); - Assert.IsNotNull(this.webServiceToken); - Assert.IsNotNull(this.settingsUrl); - } - } -} diff --git a/provisioning/test/ProvisioningBaseTest.cs b/provisioning/test/ProvisioningTest.cs similarity index 85% rename from provisioning/test/ProvisioningBaseTest.cs rename to provisioning/test/ProvisioningTest.cs index 635ff1a6e..fb8102d66 100644 --- a/provisioning/test/ProvisioningBaseTest.cs +++ b/provisioning/test/ProvisioningTest.cs @@ -20,8 +20,36 @@ namespace Microsoft.Research.DecisionServiceTest { - public class ProvisioningBaseTest + [TestClass] + public partial class ProvisioningTest { + [TestMethod] + [Ignore] + public void ProvisionOnlyTest() + { + this.Initialize(); + + Assert.IsNotNull(this.managementCenterUrl); + Assert.IsNotNull(this.managementPassword); + Assert.IsNotNull(this.onlineTrainerUrl); + Assert.IsNotNull(this.onlineTrainerToken); + Assert.IsNotNull(this.webServiceToken); + Assert.IsNotNull(this.settingsUrl); + } + + [TestMethod] + [TestCategory("End to End")] + [Priority(2)] + public async Task AllEndToEndTests() + { + this.Initialize(); + + await SimplePolicyTest(); + + E2ERankerStochasticRewards(); + } + + private JObject deploymentOutput; protected bool deleteOnCleanup; @@ -41,18 +69,44 @@ private static string GetConfiguration(string name) return ConfigurationManager.AppSettings[name]; } - protected ProvisioningBaseTest() + public ProvisioningTest() { - this.deleteOnCleanup = true; - } +// string deploymentOutput = @" +//{ +// ""management Center URL"": { +// ""type"": ""String"", +// ""value"": ""https://mc-sccwor75dvlcuchl6tlbcaux42.azurewebsites.net"" +// }, +// ""management Center Password"": { +// ""type"": ""String"", +// ""value"": ""vmfhd4lsmxkbk"" +// }, +// ""client Library URL"": { +// ""type"": ""String"", +// ""value"": ""https://storagesccwor75dvlcu.blob.core.windows.net/mwt-settings/client?sv=2015-07-08&sr=b&sig=lre%2BGTE9wfgXucIR62FAY8NiQQEADgbq2x26ur3bCsA%3D&st=2016-07-11T17%3A59%3A04Z&se=2017-07-11T18%3A00%3A04Z&sp=r"" +// }, +// ""web Service Token"": { +// ""type"": ""String"", +// ""value"": ""57dx6h2tw464k"" +// }, +// ""online Trainer Token"": { +// ""type"": ""String"", +// ""value"": ""votzwbdgrkcoe"" +// }, +// ""online Trainer URL"": { +// ""type"": ""String"", +// ""value"": ""http://trainer-sccwor75dvlcuchl6tlbcaux42.cloudapp.net"" +// } +//} +//"; +// this.deploymentOutput = JObject.Parse(deploymentOutput); +// this.ParseDeploymentOutputs(); - protected ProvisioningBaseTest(string deploymentOutput) - { this.deleteOnCleanup = false; - this.deploymentOutput = JObject.Parse(deploymentOutput); - this.ParseDeploymentOutputs(); } + + protected void ConfigureDecisionService(string trainArguments = null, float? initialExplorationEpsilon = null, bool? isExplorationEnabled = null) { using (var wc = new WebClient()) @@ -160,7 +214,6 @@ private ResourceManagementClient CreateResourceManagementClient() return armClient; } - [TestInitialize] public void Initialize() { // re-using deployment diff --git a/provisioning/test/SimplePolicyHttpTest.cs b/provisioning/test/SimplePolicyHttpTest.cs index dbc26bd32..99d47a09f 100644 --- a/provisioning/test/SimplePolicyHttpTest.cs +++ b/provisioning/test/SimplePolicyHttpTest.cs @@ -14,31 +14,8 @@ namespace Microsoft.Research.DecisionServiceTest { [TestClass] - public class SimplePolicyHttpTestClass : ProvisioningBaseTest + public class SimplePolicyHttpTestClass : ProvisioningTest { - private const string deploymentOutput = @" -{ - ""management Center URL"": { - ""type"": ""String"", - ""value"": ""https://dmunitef1924c44cc9b28ff02c1fe6650b-mc-a5u7oqwv2xzi4.azurewebsites.net"" - }, - ""management Center Password"": { - ""type"": ""String"", - ""value"": ""dkqwm7lmlgipi"" - }, - ""client Library Url"": { - ""type"": ""String"", - ""value"": ""https://storagea5u7oqwv2xzi4.blob.core.windows.net/mwt-settings/client?sv=2015-07-08&sr=b&sig=I9W6J8HabJnjYiKilrAGLTb8Fo3yULI7raXuBohsm3M%3D&st=2016-06-20T04%3A11%3A44Z&se=2017-06-20T04%3A12%3A44Z&sp=r"" - }, - ""online Trainer Token"": { - ""type"": ""String"", - ""value"": ""7cbzr4zikh6ko"" - }, - ""online Trainer URL"": { - ""type"": ""String"", - ""value"": ""http://dmunitef1924c44cc9b28ff02c1fe6650b-trainer-a5u7oqwv2xzi4.cloudapp.net"" - } -}"; private const string contextType = "policy"; private Dictionary freq; @@ -49,7 +26,6 @@ public class SimplePolicyHttpTestClass : ProvisioningBaseTest WebClient wc; public SimplePolicyHttpTestClass() - : base(deploymentOutput) { wc = new WebClient(); wc.Headers.Add("auth", managementPassword); diff --git a/provisioning/test/SimplePolicyTest.cs b/provisioning/test/SimplePolicyTest.cs index 6a85056a9..050576efa 100644 --- a/provisioning/test/SimplePolicyTest.cs +++ b/provisioning/test/SimplePolicyTest.cs @@ -9,46 +9,18 @@ namespace Microsoft.Research.DecisionServiceTest { - [TestClass] - public class SimplePolicyTestClass : ProvisioningBaseTest + public partial class ProvisioningTest { - private const string deploymentOutput = @" -{ - ""management Center URL"": { - ""type"": ""String"", - ""value"": ""https://mc-sccwor75dvlcuchl6tlbcaux42.azurewebsites.net"" - }, - ""management Center Password"": { - ""type"": ""String"", - ""value"": ""vmfhd4lsmxkbk"" - }, - ""client Library URL"": { - ""type"": ""String"", - ""value"": ""https://storagesccwor75dvlcu.blob.core.windows.net/mwt-settings/client?sv=2015-07-08&sr=b&sig=lre%2BGTE9wfgXucIR62FAY8NiQQEADgbq2x26ur3bCsA%3D&st=2016-07-11T17%3A59%3A04Z&se=2017-07-11T18%3A00%3A04Z&sp=r"" - }, - ""web Service Token"": { - ""type"": ""String"", - ""value"": ""57dx6h2tw464k"" - }, - ""online Trainer Token"": { - ""type"": ""String"", - ""value"": ""votzwbdgrkcoe"" - }, - ""online Trainer URL"": { - ""type"": ""String"", - ""value"": ""http://trainer-sccwor75dvlcuchl6tlbcaux42.cloudapp.net"" - } -} -"; - private Dictionary freq; private string[] features; private Random rnd; private int eventCount; - // public SimplePolicyTestClass() : base(deploymentOutput) { } - + /// + /// Remove [Ignore] to run individually + /// [TestMethod] + [Ignore] [TestCategory("End to End")] [Priority(2)] public async Task SimplePolicyTest() diff --git a/provisioning/test/ds-provisioning.csproj b/provisioning/test/ds-provisioning.csproj index 63776eaa7..b567c03e4 100644 --- a/provisioning/test/ds-provisioning.csproj +++ b/provisioning/test/ds-provisioning.csproj @@ -218,9 +218,8 @@ - + -