code: def test_subclasses(self):
      from ctypes import c_void_p, c_char_p
  
      # ctypes 0.9.5 and before did overwrite from_param in SimpleType_new
      class CVOIDP(c_void_p):
          def from_param(cls, value):
              return value * 2
  
          from_param = classmethod(from_param)
  
      class CCHARP(c_char_p):
          def from_param(cls, value):
              return value * 4
  
          from_param = classmethod(from_param)
  
      self.assertEqual(CVOIDP.from_param("abc"), "abcabc")
      self.assertEqual(CCHARP.from_param("abc"), "abcabcabcabc")
  
file_path: catboost/contrib/tools/python/src/Lib/ctypes/test/test_parameters.py
imports: import unittest, sys
  from ctypes.test import need_symbol
  import test.support
label_desc: Use image node_id 3 for calling the SimpleTypesTestCase obj's underlying member method code with example usage: obj.test_subclasses() and returns: unknown, unknown