def setUp(self): self.ImageDataset = ImageDataset() self.path = armor.tests.__path__[0] self.pathTestImgs = os.path.join(armor.tests.__path__[0], 'testImgs') self.setInvalid = [os.path.join(self.pathTestImgs, 'nonexisting.jpg'), os.path.join(self.pathTestImgs, 'test1.jpg')] self.setValid = [os.path.join(self.pathTestImgs,'test1.jpg'), os.path.join(self.pathTestImgs, 'test2.jpg')]
class TestImageDataset(unittest.TestCase): def setUp(self): self.ImageDataset = ImageDataset() self.path = armor.tests.__path__[0] self.pathTestImgs = os.path.join(armor.tests.__path__[0], 'testImgs') self.setInvalid = [os.path.join(self.pathTestImgs, 'nonexisting.jpg'), os.path.join(self.pathTestImgs, 'test1.jpg')] self.setValid = [os.path.join(self.pathTestImgs,'test1.jpg'), os.path.join(self.pathTestImgs, 'test2.jpg')] def addCategories(self, set = None): if not set: set = self.setInvalid self.ImageDataset.addCategory() self.ImageDataset.addCategory('test1') self.ImageDataset.addCategory('test2', set) def testAddCategories(self): self.addCategories() # self.ImageDataset.saveToXML('test.xml') self.checkConsistency() def checkConsistency(self): self.assertEqual(self.ImageDataset.categories[0].name, '') self.assertEqual(self.ImageDataset.categories[1].name, 'test1') self.assertEqual(self.ImageDataset.categories[2].name, 'test2') self.assertEqual(self.ImageDataset.categories[2].fnames, self.setInvalid) def testDelCategories(self): self.addCategories() self.ImageDataset.delCategory(0) self.assertEqual(len(self.ImageDataset.categories), 2) self.assertEqual(self.ImageDataset.categories[0].name, 'test1') self.assertRaises(IndexError, self.ImageDataset.delCategory, 2) def testLoadFromXML(self, fname=None): if not fname: self.testSaveToXML() fname = os.path.join(self.path, 'test_saved.xml') self.ImageDataset.loadFromXML(fname) self.checkConsistency() def testSaveToXML(self): self.addCategories() self.ImageDataset.saveToXML(os.path.join(self.path, 'test_saved.xml')) del self.ImageDataset self.setUp() self.ImageDataset.loadFromXML(os.path.join(self.path, 'test_saved.xml')) self.checkConsistency() def testAddAndDelFnames(self): self.addCategories() self.ImageDataset.categories[1].addDir(self.pathTestImgs) self.assertEqual(self.ImageDataset.categories[1].fnames, self.setValid) self.ImageDataset.categories[1].delFile(os.path.join(self.pathTestImgs, 'test1.jpg')) self.assertEqual(self.ImageDataset.categories[1].fnames, [os.path.join(self.pathTestImgs, 'test2.jpg')]) self.ImageDataset.categories[1].delID(0) self.assertEqual(len(self.ImageDataset.categories[1].fnames), 0) def testAccessNoContainer(self): self.addCategories() self.assertRaises(AttributeError, self.ImageDataset.__iter__) def testIterateFnames(self): self.addCategories() for x,y in zip(self.ImageDataset.categories[2], [os.path.join(self.pathTestImgs, 'nonexisting.jpg'), os.path.join(self.pathTestImgs, 'test1.jpg')]): self.assertEqual(x,y) def testSeqContainerValid(self): self.addCategories(set = self.setValid) self.ImageDataset.prepare() seqContainer = self.ImageDataset.OutputSlotTrain def testSeqContainerValidIter(self): self.addCategories(set = self.setValid) self.ImageDataset.prepare() seqContainer = self.ImageDataset.OutputSlotTrain def testSeqContainerInvalid(self): self.addCategories()