code: def test_robust_parse(self):
      df = pd.DataFrame(
          {
              "int": [1, 2, 3],
              "float": [1.0, 2.0, 3.0],
              "str": ["one", "two", "three"],
              "nan": [np.nan, np.nan, np.nan],
              "sparse_int": [1, 2, np.nan],
              "sparse_float": [np.nan, 2.0, 3.0],
              "sparse_str": [None, "two", None],
          }
      )
      g = SGraph().add_vertices(df)
      self.assertItemsEqual(
          g.get_fields(),
          df.columns.tolist() + ["__id", "__src_id", "__dst_id"],
      )
  
      df2 = g.get_vertices(format="dataframe")
      sf = g.get_vertices(format="sframe")
      for col in df.columns:
          # potential bug: df2 is missing the 'nan' column.
          if col != "nan":
              self.assertItemsEqual(
                  sorted(list(df2[col].dropna())),
                  sorted(list(df[col].dropna())),
              )
              self.assertItemsEqual(
                  sorted(list(sf[col].dropna())),
                  sorted(list(df[col].dropna())),
              )
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  from ..data_structures.sgraph import SGraph, Vertex, Edge, load_sgraph
  from ..data_structures.sframe import SFrame
  from .None import util
  import pandas
  from pandas.util.testing import assert_frame_equal
  import numpy
  import unittest
  import tempfile
  import json
  import os
  import sys
  import pytest
label_desc: Use image node_id 10 for calling the GraphTests obj's underlying member method code with example usage: obj.test_robust_parse() without return types