public void TestSaveAndLoadKNNModel() { TestTrainValidData(); //Sets up a KNN with data string modelFileName = "KNNModel.txt"; KnnModel.Save(new StreamWriter(modelFileName).BaseStream); List <Dictionary <object, int> > labelMappingDict = KnnModel.CopyLabelMappingDictionary(); List <KNNDataPoint> dataPoints = KnnModel.CopyDataPoints(); KnnModel = new KNN(); KnnModel.Load(new StreamReader(modelFileName).BaseStream); List <KNNDataPoint> loadedDataPoints = KnnModel.CopyDataPoints(); var loadedMappingDicts = KnnModel.CopyLabelMappingDictionary(); for (int i = 0; i < dataPoints.Count; i++) { Assert.IsTrue(dataPoints[i].Equals(loadedDataPoints[i])); } for (int i = 0; i < labelMappingDict.Count; i++) { var savedMappingDict = labelMappingDict[i]; var loadedMappingDict = loadedMappingDicts[i]; foreach (object key in savedMappingDict.Keys) { Assert.IsTrue(savedMappingDict[key].Equals(loadedMappingDict[key])); } } File.Delete(modelFileName); }
public bool Save(Stream fileStream) { try { Model.Save(fileStream); } catch (IOException) { return(false); } return(true); }