class_docstr: Test creation of the Kmeans model with various parameter and dataset
  configurations.
docstr: Make sure inputs to the create() method are not mutated. Note that
  'batch_size' may be mutated by the model, by design. The input data
  does have integer types, which are cast internally to floats. The
  user's data should not be changed at all.
code: def test_input_mutations(self):
      """
      Make sure inputs to the create() method are not mutated. Note that
      'batch_size' may be mutated by the model, by design. The input data
      does have integer types, which are cast internally to floats. The
      user's data should not be changed at all.
      """
  
      ## Make copies of key objects
      sf = copy.copy(self.sf)
      verbose = copy.copy(self.verbose)
      K = copy.copy(self.K)
      max_iter = copy.copy(self.max_iter)
      features = copy.copy(self.sf.column_names())
  
      ## Create a model with the copied objects
      m = tc.kmeans.create(
          sf,
          features=features,
          num_clusters=K,
          max_iterations=max_iter,
          verbose=verbose,
      )
  
      ## Check that the copies still equal the originals
      assert_sframe_equal(sf, self.sf)
      self.assertEqual(verbose, self.verbose)
      self.assertEqual(K, self.K)
      self.assertEqual(max_iter, self.max_iter)
      self.assertEqual(features, self.sf.column_names())
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  import copy
  import numpy
  from numpy.testing import assert_allclose
  import turicreate
  from .None import util
  from turicreate.util import _assert_sframe_equal
  from turicreate.toolkits._main import ToolkitError
  import sys
label_desc: Use image node_id 2 for calling the KmeansCreateTest obj's underlying member method code with example usage: obj.test_input_mutations() without return types