def test_add(self): result = self.container + (1, 2, 3) expected = FrozenList(self.lst + [1, 2, 3]) self.check_result(result, expected) result = (1, 2, 3) + self.container expected = FrozenList([1, 2, 3] + self.lst) self.check_result(result, expected)
class TestFrozenList(CheckImmutable, CheckStringMixin, tm.TestCase): mutable_methods = ('extend', 'pop', 'remove', 'insert') unicode_container = FrozenList([u("\u05d0"), u("\u05d1"), "c"]) def setUp(self): self.lst = [1, 2, 3, 4, 5] self.container = FrozenList(self.lst) self.klass = FrozenList def test_add(self): result = self.container + (1, 2, 3) expected = FrozenList(self.lst + [1, 2, 3]) self.check_result(result, expected) result = (1, 2, 3) + self.container expected = FrozenList([1, 2, 3] + self.lst) self.check_result(result, expected) def test_inplace(self): q = r = self.container q += [5] self.check_result(q, self.lst + [5]) # other shouldn't be mutated self.check_result(r, self.lst)
def setUp(self): self.lst = [1, 2, 3, 4, 5] self.container = FrozenList(self.lst) self.klass = FrozenList
def parse_coords_definition(coords=None): ''' Validate coords to test for cyclic graph ''' if coords == None: return None, None, None if isinstance(coords, string_types): return OrderedDict([(coords, None)]), FrozenList([coords]), { coords: set([coords]) } elif not has_iterkeys(coords): if isinstance(coords, Coordinates): coords = coords._coords coords = OrderedDict( list(zip(list(coords), [None for _ in range(len(coords))]))) return coords, FrozenList( coords.keys()), {c: set([c]) for c in coords.keys()} base_coords = [] dependencies = OrderedDict([]) base_deps = {} visited = set() def find_coord_dependencies(coord): if coord in visited: if coord not in dependencies: raise GraphIsCyclicError return deps = coords.pop(coord) if deps is None: base_coords.append(coord) dependencies[coord] = None base_deps[coord] = set([coord]) visited.add(coord) elif isinstance(deps, string_types): visited.add(coord) find_coord_dependencies(deps) dependencies[coord] = set([deps]) base_deps[coord] = base_deps[deps] else: visited.add(coord) dependencies[coord] = set() base_deps[coord] = set() for ele in deps: find_coord_dependencies(ele) dependencies[coord].add(ele) base_deps[coord] |= base_deps[ele] while len(coords) > 0: find_coord_dependencies(next(iterkeys(coords))) # Convert from sets to lists for k, v in dependencies.items(): if v is not None: dependencies[k] = list(v) return dependencies, FrozenList(base_coords), base_deps
from sklearn.metrics.pairwise import pairwise_distances from tqdm import tqdm from config import ROOT_DIR class LionClasses: ADULT_MALES = 0 SUBADULT_MALES = 1 ADULT_FEMALES = 2 JUVENILES = 3 PUPS = 4 NUM_CLASSES = 5 CLASS_NAMES = FrozenList(['adult_males', 'subadult_males', 'adult_females', 'juveniles', 'pups']) def coords_df_to_dict(coords_df_): images_info = defaultdict(list) for row in coords_df_.itertuples(): item = dict(cls=row.cls, row=row.row, col=row.col) images_info[row.tid].append(item) return images_info def hardcode_coords(coords_df_): coords_df_ = coords_df_.copy() coords_df_.loc[(coords_df_['tid'] == 691) & (coords_df_['cls'] == 0), 'row'] = 105 coords_df_.loc[(coords_df_['tid'] == 691) & (coords_df_['cls'] == 0), 'col'] = 1550 return coords_df_