26 lines
908 B
Python
26 lines
908 B
Python
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
|
|
import unittest
|
|
import torch
|
|
|
|
from detectron2.structures import Instances
|
|
|
|
|
|
class TestInstancesIndexing(unittest.TestCase):
|
|
def test_int_indexing(self):
|
|
attr1 = torch.tensor([[0.0, 0.0, 1.0], [0.0, 0.0, 0.5], [0.0, 0.0, 1.0], [0.0, 0.5, 0.5]])
|
|
attr2 = torch.tensor([0.1, 0.2, 0.3, 0.4])
|
|
instances = Instances((100, 100))
|
|
instances.attr1 = attr1
|
|
instances.attr2 = attr2
|
|
for i in range(-len(instances), len(instances)):
|
|
inst = instances[i]
|
|
self.assertEqual((inst.attr1 == attr1[i]).all(), True)
|
|
self.assertEqual((inst.attr2 == attr2[i]).all(), True)
|
|
|
|
self.assertRaises(IndexError, lambda: instances[len(instances)])
|
|
self.assertRaises(IndexError, lambda: instances[-len(instances) - 1])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|