# 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()