public void WriteLinearMachineTest()
{
MemoryStream destination = new MemoryStream();
var model = new LibSvmModel()
{
Bias = -1,
Classes = 2,
Dimension = 123,
Labels = new[] { +1, -1 },
Solver = LibSvmSolverType.L1RegularizedLogisticRegression,
Weights = a9a_weights
};
model.Save(destination);
destination.Seek(0, SeekOrigin.Begin);
TextReader textReader = new StreamReader(destination);
string[] actual = textReader.ReadToEnd()
.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
string[] expected = Resources.L1R_LR_a9a
.Split(new[] { "\r\n" }, StringSplitOptions.None);
Assert.AreEqual(expected.Length, actual.Length);
for (int i = 0; i < 7; i++)
Assert.AreEqual(expected[i], actual[i]);
for (int i = 6; i < expected.Length; i++)
{
if (expected[i] == actual[i])
continue;
double a = Double.Parse(expected[i], CultureInfo.InvariantCulture);
double b = Double.Parse(actual[i], CultureInfo.InvariantCulture);
Assert.AreEqual(a, b);
}
Assert.AreEqual(expected[expected.Length - 1], String.Empty);
}