public async Task MlProcessing_ModelTraining_AllGenericEntities() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); foreach (var modelId in models) { var model = await Session.Get <Model>(modelId); model.Should().NotBeNull(); model.Status.Should().Be(ModelStatus.Processed); var responseSetPublic = JohnApi.SetPublicModelsEntity(modelId, true).GetAwaiter().GetResult(); Harness.WaitWhileModelShared(modelId); responseSetPublic.EnsureSuccessStatusCode(); } var response = await JohnApi.GetPublicEntity("models"); var nodesContent = await response.Content.ReadAsStringAsync(); var entities = JToken.Parse(nodesContent); entities.Should().HaveCount(1); await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_ModelDependentFilesAndReportBelongToUserWhichStartedTraining() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); Guid modelId = models.Single(); modelId.Should().NotBeEmpty(); var dependentFiles = Harness.GetDependentFiles(modelId, FileType.Image, FileType.Tabular, FileType.Pdf); foreach (var fileId in dependentFiles) { var file = await Harness.Session.Get <File>(fileId); var fileEntity = Files.Find(new BsonDocument("_id", fileId)).FirstOrDefault() as IDictionary <string, object>; fileEntity["OwnedBy"].ShouldBeEquivalentTo(JohnId); } var reportFiles = Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); foreach (var fileId in reportFiles) { var file = await Harness.Session.Get <File>(fileId); var fileEntity = Files.Find(new BsonDocument("_id", fileId)).FirstOrDefault() as IDictionary <string, object>; fileEntity["OwnedBy"].ShouldBeEquivalentTo(JohnId); } }
public async Task MlProcessing_TrainOneModelAndFailDuringTheReportGeneration_WaitsWhileAllAssociatedGenericFilesProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); var modelId = models.Single(); var model = await Session.Get <Model>(modelId); model.Should().NotBeNull(); model.Status.Should().Be(ModelStatus.Processed); model.Images.Should().HaveCount(3); var files = Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); files.Should().HaveCount(2); foreach (var fileId in files) { var file = await Session.Get <File>(fileId); file.Should().NotBeNull(); file.Status.Should().Be(FileStatus.Processed); } ; await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_WaitsWhileAllAssociatedGenericFilesProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); var modelId = models.Single(); var modelGenericFiles = Harness.GetDependentFiles(modelId, FileType.Image, FileType.Tabular, FileType.Pdf); modelGenericFiles.Should().HaveCount(5); foreach (var fileId in modelGenericFiles) { var file = await Session.Get <File>(fileId); file.Should().NotBeNull(); file.Status.Should().Be(FileStatus.Processed); } ; var reportFiles = Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); reportFiles.Should().HaveCount(3); foreach (var id in reportFiles) { var file = await Session.Get <File>(id); file.Should().NotBeNull(); file.Status.Should().Be(FileStatus.Processed); } ; await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_WaitsWhileAllAssociatedGenericFilesProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); foreach (var modelId in models) { var modelGenericFiles = Harness.GetDependentFiles(modelId, FileType.Image, FileType.Tabular, FileType.Pdf); modelGenericFiles.Should().HaveCount(5); modelGenericFiles.ToList().ForEach(async fileId => { var file = await Session.Get <File>(modelId); file.Should().NotBeNull(); file.Status.Should().Be(FileStatus.Processed); }); } var reportFiles = Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); reportFiles.Should().HaveCount(3); reportFiles.ToList().ForEach(async id => { var fileResponse = await JohnApi.GetFileEntityById(id); fileResponse.EnsureSuccessStatusCode(); var jsonFile = JToken.Parse(await fileResponse.Content.ReadAsStringAsync()); jsonFile["status"].Should().BeEquivalentTo("Processed"); }); await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_ModelPersisted() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); var modelResponse = await JohnApi.GetModelEntityById(models.First()); modelResponse.EnsureSuccessStatusCode(); var modelJson = JToken.Parse(await modelResponse.Content.ReadAsStringAsync()); modelJson.Should().ContainsJson($@" {{ 'id': '{modelJson["id"].ToObject<Guid>()}', 'blob': *EXIST*, 'ownedBy': '{JohnId}', 'createdBy': '{JohnId}', 'createdDateTime': *EXIST*, 'updatedBy': '{JohnId}', 'updatedDateTime': *EXIST*, 'parentId': '{FolderId}', 'name': 'Naive Bayes', 'status': 'Processed', 'version': 11, 'method': 'NaiveBayes', 'className': 'ClassName', 'subSampleSize': '0.2', 'kFold': 4, 'fingerprints': [ {{ 'type': '1', 'size': 1024, 'radius': 3 }}], 'images': *EXIST* }}", new List <string> { "testDatasetSize" }); var modelNodeResponse = await JohnApi.GetNodeById(models.First()); modelNodeResponse.EnsureSuccessStatusCode(); var nodeJson = JToken.Parse(await modelNodeResponse.Content.ReadAsStringAsync()); nodeJson.Should().ContainsJson($@" {{ 'id': '{modelJson["id"].ToObject<Guid>()}', 'blob': *EXIST*, 'type': 'Model', 'ownedBy': '{JohnId}', 'createdBy': '{JohnId}', 'createdDateTime': *EXIST*, 'updatedBy': '{JohnId}', 'updatedDateTime': *EXIST*, 'parentId': '{FolderId}', 'name': 'Naive Bayes', 'status': 'Processed', 'version': 11, 'images': *EXIST* }}"); }
public async Task MlProcessing_ModelTraining_AllGenericFilesProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); var modelId = models.Single(); var model = await Session.Get <Model>(modelId); model.Should().NotBeNull(); model.Status.Should().Be(ModelStatus.Processed); model.Images.Should().HaveCount(3); var files = Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); files.Should().HaveCount(3); models.ToList().ForEach(async fileId => { var file = await Session.Get <File>(modelId); file.Should().NotBeNull(); file.Status.Should().Be(FileStatus.Processed); }); await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_ModelProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); var modelResponse = await JohnApi.GetModelEntityById(models.First()); modelResponse.EnsureSuccessStatusCode(); var modelJson = JToken.Parse(await modelResponse.Content.ReadAsStringAsync()); modelJson["status"].ToObject <string>().ShouldBeEquivalentTo("Processed"); }
public async Task MlProcessing_InvalidModelTraining_DidNotGenerateAnyGenericFiles() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); var files = Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); files.Should().HaveCount(0); await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_ModelProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); var model = await Harness.Session.Get <Model>(models.First()); model.Images.Should().HaveCount(3); model.Status.Should().Be(ModelStatus.Processed); }
public async Task MlProcessing_ModelTraining_GeneratesOneModel() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); var modelId = models.Single(); var model = await Session.Get <Model>(modelId); model.Should().NotBeNull(); model.Status.Should().Be(ModelStatus.Processed); }
public async Task MlProcessing_ModelTraining_ModelPersisted() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); var model = await Harness.Session.Get <Model>(models.First()); var modelNode = Nodes.Find(new BsonDocument("_id", model.Id)).FirstOrDefault() as IDictionary <string, object>; modelNode.Should().NotBeNull(); modelNode.Should().ModelNodeShouldBeEquivalentTo(model); var modelEntity = Models.Find(new BsonDocument("_id", model.Id)).FirstOrDefault() as IDictionary <string, object>; modelEntity.Should().NotBeNull(); modelEntity.Should().ModelEntityShouldBeEquivalentTo(model); }
public async Task MlProcessing_TrainOneModelAndFailDuringTheReportGeneration_WaitsWhileAllAssociatedGenericFilesProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); foreach (var modelId in models) { var model = await Session.Get <Model>(modelId); model.Should().NotBeNull(); model.Status.Should().Be(ModelStatus.Processed); model.Images.Should().HaveCount(3); } var files = (Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf)).ToList(); files.Should().HaveCount(2); files.ToList().ForEach(async fileId => { var fileResponse = await JohnApi.GetFileEntityById(fileId); fileResponse.EnsureSuccessStatusCode(); var jsonFile = JToken.Parse(await fileResponse.Content.ReadAsStringAsync()); jsonFile["status"].Should().BeEquivalentTo("Processed"); }); await Task.CompletedTask; //var files = Fixture.GetDependentFiles(FolderId).ToList(); //files.Should().HaveCount(5); //files.ForEach(async id => //{ // var fileResponse = await Api.GetFileEntityById(id); // fileResponse.EnsureSuccessStatusCode(); // var jsonFile = JToken.Parse(await fileResponse.Content.ReadAsStringAsync()); // jsonFile["status"].Should().BeEquivalentTo("Processed"); //}); //await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_AllGenericFilesProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(2); int i = 0; foreach (var modelId in models) { Log.Information(i.ToString()); var model = await Session.Get <Model>(modelId); model.Should().NotBeNull(); model.Status.Should().Be(ModelStatus.Processed); model.Images.Should().HaveCount(3); var files = Harness.GetDependentFiles(modelId, FileType.Image, FileType.Tabular, FileType.Pdf); foreach (var fileId in files) { var file = await Session.Get <File>(fileId); file.Should().NotBeNull(); file.Status.Should().Be(FileStatus.Processed); } ; } var reportFiles = Harness.GetDependentFiles(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); reportFiles.Should().HaveCount(3); foreach (var fileId in reportFiles) { var file = await Session.Get <File>(fileId); file.Should().NotBeNull(); file.Status.Should().Be(FileStatus.Processed); } ; await Task.CompletedTask; }
public async Task MlProcessing_InvalidModelTraining_WaitsWhileAllAssociatedGenericFilesProcessed() { var modelId = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Pdf, FileType.Tabular); modelId.Should().HaveCount(1); modelId.SingleOrDefault().Should().NotBeEmpty(); var dependentFiles = Harness.GetDependentFiles(modelId.Single()).ToList(); dependentFiles.Should().HaveCount(2); dependentFiles.ToList().ForEach(async id => { var fileResponse = await JohnApi.GetFileEntityById(id); fileResponse.EnsureSuccessStatusCode(); var jsonFile = JToken.Parse(await fileResponse.Content.ReadAsStringAsync()); jsonFile["status"].Should().BeEquivalentTo("Processed"); }); await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_GeneratesOneTabular() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); var modelId = models.Single(); var tabulars = Harness.GetDependentFiles(modelId, FileType.Tabular); tabulars.Should().NotBeNullOrEmpty(); tabulars.Should().HaveCount(2); foreach (var tabularId in tabulars) { var tabular = await Harness.Session.Get <TabularFile>(tabularId); var tabularEntity = Files.Find(new BsonDocument("_id", tabularId)).FirstOrDefault() as IDictionary <string, object>; tabularEntity.Should().TabularEntityShouldBeEquivalentTo(tabular); } await Task.CompletedTask; }
public async Task MlProcessing_ModelTraining_AllGenericFilesProcessed() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); foreach (var modelId in models) { var model = await Session.Get <Model>(modelId); model.Should().NotBeNull(); model.Status.Should().Be(ModelStatus.Processed); await JohnApi.SetPublicModelsEntity(modelId, true); Harness.WaitWhileModelShared(modelId); var responseSSP = await JohnApi.CreateSingleStructurePridiction(new RunSingleStructurePrediction { Format = "SMILES", ModelIds = new List <Guid> { modelId }, PropertyName = "name", Structure = "C1C=CC=C1C1C=CC=C1" }); var predictionId = JToken.Parse(await responseSSP.Content.ReadAsStringAsync())["predictionId"].ToObject <Guid>(); responseSSP.EnsureSuccessStatusCode(); var responseStatus = await JohnApi.GetPredictionStatus(predictionId); var status = JToken.Parse(await responseStatus.Content.ReadAsStringAsync()); status["id"].ToObject <Guid>().ShouldBeEquivalentTo(predictionId); // status["status"].ToObject<string>().ShouldAllBeEquivalentTo("CALCULATING"); } await Task.CompletedTask; }
public void MlProcessing_ModelTraining_GeneratesOneModel() { var models = Harness.GetDependentFilesExcept(FolderId, FileType.Image, FileType.Tabular, FileType.Pdf); models.Should().HaveCount(1); }