public function test_scenario5() { $data = array(array('filename' => 'data/iris.csv', 'expected_file' => 'data/model/predictions_distribution_iris.txt'), array('filename' => 'data/iris_sp_chars.csv', 'expected_file' => 'data/model/predictions_distribution_iris_sp_chars.txt'), array('filename' => 'data/spam.csv', 'expected_file' => 'data/model/predictions_distribution_spam.txt'), array('filename' => 'data/grades.csv', 'expected_file' => 'data/model/predictions_distribution_grades.txt'), array('filename' => 'data/diabetes.csv', 'expected_file' => 'data/model/predictions_distribution_diabetes.txt'), array('filename' => 'data/iris_missing2.csv', 'expected_file' => 'data/model/predictions_distribution_iris_missing2.txt'), array('filename' => 'data/tiny_kdd.csv', 'expected_file' => 'data/model/predictions_distribution_tiny_kdd.txt')); foreach ($data as $item) { print "\n Successfully creating a model and check its predictions distribution\n"; print "Given I create a data source uploading a " . $item["filename"] . " file\n"; $source = self::$api->create_source($item["filename"], $options = array('name' => 'local_test_source', 'project' => self::$project->resource)); $this->assertEquals(BigMLRequest::HTTP_CREATED, $source->code); $this->assertEquals(1, $source->object->status->code); print "And I wait until the source is ready\n"; $resource = self::$api->_check_resource($source->resource, null, 3000, 30); $this->assertEquals(BigMLRequest::FINISHED, $resource["status"]); print "And I create dataset with local source\n"; $dataset = self::$api->create_dataset($source->resource); $this->assertEquals(BigMLRequest::HTTP_CREATED, $dataset->code); $this->assertEquals(BigMLRequest::QUEUED, $dataset->object->status->code); print "And I wait until the dataset is ready\n"; $resource = self::$api->_check_resource($dataset->resource, null, 3000, 30); $this->assertEquals(BigMLRequest::FINISHED, $resource["status"]); print "And I create model\n"; $model = self::$api->create_model($dataset->resource); $this->assertEquals(BigMLRequest::HTTP_CREATED, $model->code); print "And I wait until the model is ready " . $model->resource . "\n"; $resource = self::$api->_check_resource($model->resource, null, 3000, 30); $this->assertEquals(BigMLRequest::FINISHED, $resource["status"]); print "And I create a local model\n"; $local_model = new Model($model->resource, self::$api); print "Then I check the predictions distribution with " . $item["expected_file"] . " file\n"; $file_distribution = file_get_contents($item["expected_file"]); $distribution = $local_model->get_prediction_distribution(); $distribution_str = ''; foreach ($distribution as $key => $value) { $distribution_str = $distribution_str . "[" . $key . "," . $value . "]\n"; } $this->assertEquals($distribution_str, $file_distribution); } }