public void TestScikitAPI_DelegateEnvironment() { var inputs = new[] { new ExampleA() { X = new float[] { 1, 10, 100 } }, new ExampleA() { X = new float[] { 2, 3, 5 } } }; var inputs2 = new[] { new ExampleA() { X = new float[] { -1, -10, -100 } }, new ExampleA() { X = new float[] { -2, -3, -5 } } }; var stdout = new List <string>(); var stderr = new List <string>(); ILogWriter logout = new LogWriter((string s) => { stdout.Add(s); }); ILogWriter logerr = new LogWriter((string s) => { stderr.Add(s); }); using (var host = new DelegateEnvironment(conc: 1, outWriter: logout, errWriter: logerr, verbose: 3)) using (var ch = host.Start("Train Pipeline")) { ComponentHelper.AddStandardComponents(host); ch.Info(MessageSensitivity.All, "Polynomial"); var data = host.CreateStreamingDataView(inputs); using (var pipe = new ScikitPipeline(new[] { "poly{col=X}" }, host: host)) { var predictor = pipe.Train(data); if (predictor == null) { throw new Exception("Predictor is null"); } } } if (stdout.Count == 0) { throw new Exception("stdout is empty."); } if (stderr.Count != 0) { throw new Exception($"stderr not empty\n{string.Join("\n", stderr)}"); } }
public void TestScikitAPI_DelegateEnvironmentVerbose0() { var inputs = new[] { new ExampleA() { X = new float[] { 1, 10, 100 } }, new ExampleA() { X = new float[] { 2, 3, 5 } } }; var inputs2 = new[] { new ExampleA() { X = new float[] { -1, -10, -100 } }, new ExampleA() { X = new float[] { -2, -3, -5 } } }; var stdout = new List <string>(); var stderr = new List <string>(); ILogWriter logout = new LogWriter(s => stdout.Add(s)); ILogWriter logerr = new LogWriter(s => stderr.Add(s)); using (var host = new DelegateEnvironment(conc: 1, outWriter: logout, errWriter: logerr, verbose: 0)) { ComponentHelper.AddStandardComponents(host); var data = host.CreateStreamingDataView(inputs); using (var pipe = new ScikitPipeline(new[] { "poly{col=X}" }, "km{k=2}", host: host)) { var predictor = pipe.Train(data, feature: "X"); Assert.IsTrue(predictor != null); } } Assert.AreEqual(stdout.Count, 0); Assert.AreEqual(stderr.Count, 0); }