public void InitializerCreationTest() { var env = new MLContext(); // Create the actual implementation var ctxImpl = new OnnxContextImpl(env, "model", "ML.NET", "0", 0, "com.test", Model.Onnx.OnnxVersion.Stable); // Use implementation as in the actual conversion code var ctx = ctxImpl as OnnxContext; ctx.AddInitializer(9.4f, "float"); ctx.AddInitializer(17L, "int64"); ctx.AddInitializer("36", "string"); ctx.AddInitializer(new List <float> { 9.4f, 1.7f, 3.6f }, new List <long> { 1, 3 }, "floats"); ctx.AddInitializer(new List <long> { 94L, 17L, 36L }, new List <long> { 1, 3 }, "int64s"); ctx.AddInitializer(new List <string> { "94", "17", "36" }, new List <long> { 1, 3 }, "strings"); var model = ctxImpl.MakeModel(); var floatScalar = model.Graph.Initializer[0]; Assert.True(floatScalar.Name == "float"); Assert.True(floatScalar.Dims.Count == 0); Assert.True(floatScalar.FloatData.Count == 1); Assert.True(floatScalar.FloatData[0] == 9.4f); var int64Scalar = model.Graph.Initializer[1]; Assert.True(int64Scalar.Name == "int64"); Assert.True(int64Scalar.Dims.Count == 0); Assert.True(int64Scalar.Int64Data.Count == 1); Assert.True(int64Scalar.Int64Data[0] == 17L); var stringScalar = model.Graph.Initializer[2]; Assert.True(stringScalar.Name == "string"); Assert.True(stringScalar.Dims.Count == 0); Assert.True(stringScalar.StringData.Count == 1); Assert.True(stringScalar.StringData[0].ToStringUtf8() == "36"); var floatsTensor = model.Graph.Initializer[3]; Assert.True(floatsTensor.Name == "floats"); Assert.True(floatsTensor.Dims.Count == 2); Assert.True(floatsTensor.Dims[0] == 1); Assert.True(floatsTensor.Dims[1] == 3); Assert.True(floatsTensor.FloatData.Count == 3); Assert.True(floatsTensor.FloatData[0] == 9.4f); Assert.True(floatsTensor.FloatData[1] == 1.7f); Assert.True(floatsTensor.FloatData[2] == 3.6f); var int64sTensor = model.Graph.Initializer[4]; Assert.True(int64sTensor.Name == "int64s"); Assert.True(int64sTensor.Dims.Count == 2); Assert.True(int64sTensor.Dims[0] == 1); Assert.True(int64sTensor.Dims[1] == 3); Assert.True(int64sTensor.Int64Data.Count == 3); Assert.True(int64sTensor.Int64Data[0] == 94L); Assert.True(int64sTensor.Int64Data[1] == 17L); Assert.True(int64sTensor.Int64Data[2] == 36L); var stringsTensor = model.Graph.Initializer[5]; Assert.True(stringsTensor.Name == "strings"); Assert.True(stringsTensor.Dims.Count == 2); Assert.True(stringsTensor.Dims[0] == 1); Assert.True(stringsTensor.Dims[1] == 3); Assert.True(stringsTensor.StringData.Count == 3); Assert.True(stringsTensor.StringData[0].ToStringUtf8() == "94"); Assert.True(stringsTensor.StringData[1].ToStringUtf8() == "17"); Assert.True(stringsTensor.StringData[2].ToStringUtf8() == "36"); }