def add_samples(self, data_points, labels):
        """
        Add some samples to the KNearestNeighborsClassifier model.

        Parameters
        ----------
        data_points
                List of input data points.

        labels
                List of corresponding labels.

        Returns
        -------
        None
        """
        if len(data_points) == 0:
            raise TypeError("data_points is empty")

        if len(labels) == 0:
            raise TypeError("labels is empty")

        if len(data_points[0]) != self.number_of_dimensions:
            raise TypeError(
                "dimensionality of data_points != expected number of dimensions"
            )

        if len(data_points) != len(labels):
            raise TypeError("len(data_points) !=  len(labels)")

        # Validate the types of the labels before adding any points.
        self._validate_label_types(labels)

        for data_point in data_points:
            sample = (
                self.spec.kNearestNeighborsClassifier.nearestNeighborsIndex.floatSamples.add()
            )
            for feature in data_point:
                sample.vector.append(feature)

        if self.spec.kNearestNeighborsClassifier.HasField("int64ClassLabels"):
            for label in labels:
                self.spec.kNearestNeighborsClassifier.int64ClassLabels.vector.append(
                    label
                )
        else:
            # string labels
            for label in labels:
                self.spec.kNearestNeighborsClassifier.stringClassLabels.vector.append(
                    label
                )

        Add some samples to the KNearestNeighborsClassifier model.

        Parameters
        ----------
        data_points
                List of input data points.

        labels
                List of corresponding labels.

        Returns
        -------
        None
        
coremltools/models/nearest_neighbors/builder.py