code: def test_assign(self):
      pdf, psdf = self.df_pair
  
      psdf["w"] = 1.0
      pdf["w"] = 1.0
  
      self.assert_eq(psdf, pdf)
  
      psdf.w = 10.0
      pdf.w = 10.0
  
      self.assert_eq(psdf, pdf)
  
      psdf[1] = 1.0
      pdf[1] = 1.0
  
      self.assert_eq(psdf, pdf)
  
      psdf = psdf.assign(a=psdf["a"] * 2)
      pdf = pdf.assign(a=pdf["a"] * 2)
  
      self.assert_eq(psdf, pdf)
  
      # multi-index columns
      columns = pd.MultiIndex.from_tuples(
          [("x", "a"), ("x", "b"), ("y", "w"), ("y", "v")]
      )
      pdf.columns = columns
      psdf.columns = columns
  
      psdf[("a", "c")] = "def"
      pdf[("a", "c")] = "def"
  
      self.assert_eq(psdf, pdf)
  
      psdf = psdf.assign(Z="ZZ")
      pdf = pdf.assign(Z="ZZ")
  
      self.assert_eq(psdf, pdf)
  
      psdf["x"] = "ghi"
      pdf["x"] = "ghi"
  
      self.assert_eq(psdf, pdf)
  
imports: from datetime import datetime
  import unittest
  import numpy
  import pandas
  from pyspark import pandas
  from pyspark.testing.pandasutils import ComparisonTestBase
  from pyspark.testing.sqlutils import SQLTestUtils
label_desc: Use image node_id 15 for calling the FrameAttrsMixin obj's underlying member method code with example usage: obj.test_assign() without return types