コード例 #1
0
    def test_constructor_with_valid_parameters(self):
        base_path = TestUtils.get_resources_path()
        name = 'genuine'
        folder_access = FolderAccess(base_path, name)
        _ = folder_access.load()

        self.assertTrue(isinstance(folder_access, FolderAccess))
コード例 #2
0
    def test_constructor_with_valid_parameters_but_pointing_no_images_folder(
            self):
        base_path = TestUtils.get_resources_path() + '/..'
        name = 'bob'
        folder_access = FolderAccess(base_path, name)

        self.assertRaises(IOError, lambda: folder_access.load())
コード例 #3
0
    def test_constructor_with_valid_parameters_and_setter_access_modifier(
            self, dummy_dict_images=dummy_dict_images):
        base_path = TestUtils.get_resources_path()
        name = 'genuine'
        folder_access = FolderAccess(base_path, name)
        folder_access.set_access_modifier(AccessModifier())
        dict_images = folder_access.load()
        AccessModifier.run.assert_called_once()

        self.assertEqual(dict_images, dummy_dict_images)
コード例 #4
0
    def get_all_accesses(self, access_modifier=AccessModifier()):
        if not self.dict_all_accesses:
            self.dict_all_accesses = {'Train': [], 'Dev': [], 'Test': []}

            for root, dirs, files in os.walk(self.base_path):
                if not dirs:
                    if sum([f.endswith('.jpg') for f in files]):
                        split_path = os.path.normpath(root).split(os.path.sep)
                        relative_path = os.path.relpath(root, self.base_path)
                        user = split_path[-2]

                        for subset, list_users in CSMAD_USERS_PER_SUBSET.items(
                        ):
                            if user in list_users:
                                self.dict_all_accesses[subset].append(
                                    FolderAccess(
                                        self.base_path,
                                        relative_path,
                                        '.jpg',
                                        access_modifier=access_modifier,
                                        annotation_base_path=self.
                                        annotation_base_path,
                                        database_name=CsmadDatabase.name()))
            for subset, list_accesses in self.dict_all_accesses.items():
                list_accesses.sort(key=lambda x: x.name)

        return self.dict_all_accesses
コード例 #5
0
    def test_constructor_with_wrong_access_modifier(self):
        base_path = TestUtils.get_resources_path()
        name = 'genuine'
        access_modifier = None

        self.assertRaises(
            TypeError, lambda: FolderAccess(
                base_path, name, access_modifier=access_modifier))
コード例 #6
0
    def get_all_accesses(self, access_modifier=AccessModifier()):
        if not self.dict_all_accesses:

            self.dict_all_accesses = {'Train': [], 'Dev': [], 'Test': []}

            for root, dirs, files in os.walk(self.base_path):
                if not dirs:
                    if sum([f.endswith('.jpg') for f in files]):
                        relative_path = os.path.relpath(root, self.base_path)
                        split_path = os.path.normpath(relative_path).split(
                            os.path.sep)

                        # Until March 10th, only Train set is available
                        if split_path[0] == 'Training' and split_path[
                                -1] == 'color':
                            depth_relative_path = relative_path.replace(
                                'color', 'depth')
                            ir_relative_path = relative_path.replace(
                                'color', 'ir')
                            user = split_path[-3]

                            if user in CASIA_DEV_USERS:
                                subset = 'Dev'
                            elif user in CASIA_TEST_USERS:
                                subset = 'Test'
                            else:
                                subset = 'Train'

                            self.dict_all_accesses[subset].append(
                                FolderAccess(
                                    self.base_path,
                                    relative_path,
                                    '.jpg',
                                    depth_name=depth_relative_path,
                                    infrared_name=ir_relative_path,
                                    access_modifier=access_modifier,
                                    annotation_base_path=self.
                                    annotation_base_path,
                                    database_name=CasiaSurfDatabase.name()))
            # subset = 'Test'
            # orig_dev_list = [line.rstrip() for line in open(os.path.join(self.base_path,
            #                                                              'val_public_list.txt'))]
            # for line in orig_dev_list:
            #     color_relative_path, depth_relative_path, ir_relative_path = line.split(' ')

            #     self.dict_all_accesses[subset].append(
            #         FolderAccess(self.base_path, color_relative_path, '.jpg',
            #                      depth_name=depth_relative_path,
            #                      infrared_name=ir_relative_path,
            #                      access_modifier=access_modifier,
            #                      annotation_base_path=self.annotation_base_path,
            #                      database_name=CasiaSurfDatabase.name()
            #                      ))

            for subset, list_accesses in self.dict_all_accesses.items():
                list_accesses.sort(key=lambda x: x.name)

        return self.dict_all_accesses
コード例 #7
0
    def test_constructor_with_wrong_base_path_and_name(self):
        base_path = TestUtils.get_resources_path()
        name = ''

        self.assertRaises(IOError, lambda: FolderAccess(base_path, name))
コード例 #8
0
    def test_constructor_with_wrong_base_path(self):
        base_path = ''
        name = 'access01'

        self.assertRaises(IOError, lambda: FolderAccess(base_path, name))