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));
     }
 }