diff --git a/test/TensorFlowNET.Keras.UnitTest/OutputTest.cs b/test/TensorFlowNET.Keras.UnitTest/OutputTest.cs new file mode 100644 index 00000000..f9ae33b6 --- /dev/null +++ b/test/TensorFlowNET.Keras.UnitTest/OutputTest.cs @@ -0,0 +1,55 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static Tensorflow.Binding; +using static Tensorflow.KerasApi; +using Tensorflow.Keras; + +namespace Tensorflow.Keras.UnitTest +{ + [TestClass] + public class OutputTest + { + [TestMethod] + public void OutputRedirectTest() + { + using var newOutput = new System.IO.StringWriter(); + tf_output_redirect = newOutput; + var model = keras.Sequential(); + model.add(keras.Input(shape: 16)); + model.summary(); + string output = newOutput.ToString(); + Assert.IsTrue(output.StartsWith("Model: sequential")); + tf_output_redirect = null; // don't forget to change it to null !!!! + } + + [TestMethod] + public void SwitchOutputsTest() + { + using var newOutput = new System.IO.StringWriter(); + var model = keras.Sequential(); + model.add(keras.Input(shape: 16)); + model.summary(); // Console.Out + + tf_output_redirect = newOutput; // change to the custom one + model.summary(); + string firstOutput = newOutput.ToString(); + Assert.IsTrue(firstOutput.StartsWith("Model: sequential")); + + // if tf_output_reditect is StringWriter, calling "set" will make the writer clear. + tf_output_redirect = null; // null means Console.Out + model.summary(); + + tf_output_redirect = newOutput; // again, to test whether the newOutput is clear. + model.summary(); + string secondOutput = newOutput.ToString(); + Assert.IsTrue(secondOutput.StartsWith("Model: sequential")); + + Assert.IsTrue(firstOutput == secondOutput); + tf_output_redirect = null; // don't forget to change it to null !!!! + } + } +}