code: def test_properties_with_specified_typse(self):
      Case = namedtuple("Case", "property_class valid invalid")
      test_cases = (
          Case(
              property_class=IntProperty,
              valid=[1, 2, 0, -10, np.int32(23), np.int64(11), 1.0],
              invalid=[1.00001, 12.34, "invalid"],
          ),
          Case(
              property_class=NumberProperty,
              valid=[1, 1.0, 12.34, -345],
              invalid=["invalid", [4, 5]],
          ),
          Case(
              property_class=ArrayProperty,
              valid=[np.array([]), np.ones((5, 3)), np.matrix([1, 2])],
              invalid=[[1, 2, 3], "invalid"],
          ),
      )
  
      for test_case in test_cases:
  
          class A(Configurable):
              value = test_case.property_class()
  
          a = A()
          for valid_value in test_case.valid:
              a.value = valid_value
  
          for invalid_value in test_case.invalid:
              with self.assertRaises(TypeError):
                  a.value = invalid_value
  
imports: from collections import namedtuple
  import numpy
  from neupy.core.config import Configurable
  from neupy.core.properties import Property, ArrayProperty, TypedListProperty, BoundedProperty, ProperFractionProperty, NumberProperty, IntProperty, ChoiceProperty, WithdrawProperty
  from base import BaseTestCase
label_desc: Use image node_id 3 for calling the PropertiesBasicsTestCase obj's underlying member method code with example usage: obj.test_properties_with_specified_typse() without return types