Пример #1
0
 def test_single_list(self):
   # Differs from test_append in that append(float) doesn't match bytearray
   mapping = self.parse_and_solve("""
     class `~unknown1`(object):
       def append(self, v: float) -> NoneType
   """)
   convert_structural.log_info_mapping(mapping)
   self.assertItemsEqual(["list"], mapping["~unknown1"])
   self.assertItemsEqual(["float"], mapping["~unknown1.list.T"])
Пример #2
0
 def test_float_list(self):
   mapping = self.parse_and_solve("""
     class `~unknown1`(object):
       def append(self, v: ?) -> NoneType
       def __getitem__(self, i: int) -> float
     """)
   convert_structural.log_info_mapping(mapping)
   self.assertItemsEqual(["list"], mapping["~unknown1"])
   self.assertItemsEqual(["float"], mapping["~unknown1.list.T"])
Пример #3
0
 def test_single_list(self):
   # Differs from test_append in that append(float) doesn't match bytearray
   mapping = self.parse_and_solve("""
     class `~unknown1`(object):
       def append(self, _1: float) -> NoneType
   """)
   convert_structural.log_info_mapping(mapping)
   self.assertItemsEqual(["list", "typing.MutableSequence", "typing.List"],
                         mapping["~unknown1"])
   self.assertItemsEqual(["float"], mapping["~unknown1.__builtin__.list._T"])
Пример #4
0
 def test_float_list(self):
   mapping = self.parse_and_solve("""
     class `~unknown1`(object):
       def append(self, _1: ?) -> NoneType
       def __getitem__(self, _1: int) -> float
     """)
   convert_structural.log_info_mapping(mapping)
   self.assertItemsEqual(["list", "typing.List", "typing.MutableSequence"],
                         mapping["~unknown1"])
   self.assertItemsEqual(["float"], mapping["~unknown1.__builtin__.list._T"])
Пример #5
0
    def test_list(self):
        mapping = self.parse_and_solve("""
      class `~unknown2`(object):
        def append(self, v: `~unknown1`) -> NoneType
        def __getitem__(self, i: ?) -> `~unknown1`

      class `~unknown1`(object):
        def __add__(self: float, y: int) -> float
        def __add__(self: float, y: float) -> float
      """)
        convert_structural.log_info_mapping(mapping)
        self.assertItemsEqual(["float"], mapping["~unknown1"])
        self.assertItemsEqual(["list"], mapping["~unknown2"])
        self.assertItemsEqual(["float"],
                              mapping["~unknown2.__builtin__.list.T"])
Пример #6
0
    def test_list(self):
        mapping = self.parse_and_solve(
            """
      class `~unknown2`:
        def append(self, v: `~unknown1`) -> NoneType
        def __getitem__(self, i: ?) -> `~unknown1`

      class `~unknown1`:
        def __add__(self: float, y: int) -> float
        def __add__(self: float, y: float) -> float
      """
        )
        convert_structural.log_info_mapping(mapping)
        self.assertItemsEqual(["float"], mapping["~unknown1"])
        self.assertItemsEqual(["list"], mapping["~unknown2"])
        self.assertItemsEqual(["float"], mapping["~unknown2.list.T"])
Пример #7
0
    def test_list(self):
        mapping = self.parse_and_solve("""
      class `~unknown2`(object):
        def append(self, _1: `~unknown1`) -> NoneType
        def __getitem__(self, _1: ?) -> `~unknown1`

      class `~unknown1`(object):
        def __add__(self: float, _1: int) -> float
        def __add__(self: float, _1: float) -> float
      """)
        convert_structural.log_info_mapping(mapping)
        six.assertCountEqual(self, ["float"], mapping["~unknown1"])
        six.assertCountEqual(self,
                             ["list", "typing.List", "typing.MutableSequence"],
                             mapping["~unknown2"])
        six.assertCountEqual(self, ["float"],
                             mapping["~unknown2.__builtin__.list._T"])
Пример #8
0
 def test_unknown(self):
   mapping = self.parse_and_solve("""
     class A(?):
       def f(self, x:?) -> ?
     class B(?):
       def f(self, x:int) -> ?
     class C(?):
       def f(self, x:?) -> int
     class D(?):
       def f(self, x:int) -> int
     class `~unknown1`(object):
       def f(self, x:?) -> ?
       def f(self, x:int) -> ?
       def f(self, x:?) -> int
       def f(self, x:int) -> int
   """)
   convert_structural.log_info_mapping(mapping)
   self.assertItemsEqual(["A", "B", "C", "D"], mapping["~unknown1"])
Пример #9
0
 def test_unknown(self):
   mapping = self.parse_and_solve("""
     class A(?):
       def f(self, x:?) -> ?
     class B(?):
       def f(self, x:int) -> ?
     class C(?):
       def f(self, x:?) -> int
     class D(?):
       def f(self, x:int) -> int
     class `~unknown1`(object):
       def f(self, x:?) -> ?
       def f(self, x:int) -> ?
       def f(self, x:?) -> int
       def f(self, x:int) -> int
   """)
   convert_structural.log_info_mapping(mapping)
   self.assertItemsEqual(["A", "B", "C", "D"], mapping["~unknown1"])