public function test_scenario5() { $data = array(array("filename" => "data/iris.csv", "options" => array("summary_fields" => array("sepal width"), 'seed' => 'BigML tests', 'cluster_seed' => 'BigML', 'k' => 8), "data_input" => array("petal length" => 1, "petal width" => 1, "sepal length" => 1, "species" => "Iris-setosa"), "centroid" => "Cluster 0", "distance" => 0.7310939266123302)); foreach ($data as $item) { print "I create a data source uploading a " . $item["filename"] . " file\n"; $source = self::$api->create_source($item["filename"], $options = array('name' => 'local_test_source')); $this->assertEquals(BigMLRequest::HTTP_CREATED, $source->code); $this->assertEquals(1, $source->object->status->code); print "check local source is ready\n"; $resource = self::$api->_check_resource($source->resource, null, 20000, 30); $this->assertEquals(BigMLRequest::FINISHED, $resource["status"]); print "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 "check the dataset is ready " . $dataset->resource . " \n"; $resource = self::$api->_check_resource($dataset->resource, null, 20000, 30); $this->assertEquals(BigMLRequest::FINISHED, $resource["status"]); $cluster = self::$api->create_cluster($dataset->resource, $item["options"]); $this->assertEquals(BigMLRequest::HTTP_CREATED, $cluster->code); $this->assertEquals(BigMLRequest::QUEUED, $cluster->object->status->code); print "I wait until the cluster is ready\n"; $resource = self::$api->_check_resource($cluster->resource, null, 20000, 30); $this->assertEquals(BigMLRequest::FINISHED, $resource["status"]); $local_cluster = new Cluster($cluster->resource, self::$api); print "create a centroid\n"; $centroid = self::$api->create_centroid($cluster->resource, $item["data_input"]); print "Then the centroid is <centroid> with distance <distance>"; $this->assertEquals(round($item["distance"], 6), round($centroid->object->distance, 6)); $local_centroid = $local_cluster->centroid($item["data_input"]); print "the local centroid is " . $item["centroid"] . " with distance " . $item["distance"] . "\n"; $this->assertEquals($item["centroid"], $local_centroid["centroid_name"]); $this->assertEquals(round($item["distance"], 6), round($local_centroid["distance"], 6)); } }