(self, b, c)
| 96 | return b |
| 97 | |
| 98 | def _test_serialization_assert(self, b, c): |
| 99 | self.assertEqual(b, c, atol=0, rtol=0) |
| 100 | self.assertTrue(isinstance(c[0], torch.FloatTensor)) |
| 101 | self.assertTrue(isinstance(c[1], torch.FloatTensor)) |
| 102 | self.assertTrue(isinstance(c[2], torch.FloatTensor)) |
| 103 | self.assertTrue(isinstance(c[3], torch.FloatTensor)) |
| 104 | self.assertTrue(isinstance(c[4], torch.storage.TypedStorage)) |
| 105 | self.assertEqual(c[4].dtype, torch.float) |
| 106 | c[0].fill_(10) |
| 107 | self.assertEqual(c[0], c[2], atol=0, rtol=0) |
| 108 | self.assertEqual(c[4], torch.FloatStorage(25).fill_(10), atol=0, rtol=0) |
| 109 | c[1].fill_(20) |
| 110 | self.assertEqual(c[1], c[3], atol=0, rtol=0) |
| 111 | # I have to do it in this roundabout fashion, because there's no |
| 112 | # way to slice storages |
| 113 | for i in range(4): |
| 114 | self.assertEqual(c[4][i + 1], c[5][i]) |
| 115 | |
| 116 | # check that serializing the same storage view object unpickles |
| 117 | # it as one object not two (and vice versa) |
| 118 | views = c[7] |
| 119 | self.assertEqual(views[0]._cdata, views[1]._cdata) |
| 120 | self.assertEqual(views[0], views[2]) |
| 121 | self.assertNotEqual(views[0]._cdata, views[2]._cdata) |
| 122 | |
| 123 | rootview = c[8] |
| 124 | self.assertEqual(rootview.data_ptr(), c[0].data_ptr()) |
| 125 | |
| 126 | def test_serialization_zipfile_utils(self): |
| 127 | data = { |
no test coverage detected