def property_setup(self, properties): properties = super(ColorEarlyVisionModel, self).property_setup(properties) properties['SF']=range(1,self.sf_channels+1) if 'sf' in self.dims and 'cr' not in self.dims else \ range(2,self.sf_channels+1) if 'sf' in self.dims and 'cr' in self.dims else [1] properties['SFs'] = (lancet.List('SF', properties['SF']) if max(properties['SF'])>1 else lancet.Identity()) cr = 'cr' in self.dims #TFALERT: Dichromatic simulations have not been tested! opponent_types_center = ['Red','Green','Blue','RedGreenBlue'] if cr \ and self.color_sim_type=='Trichromatic' else \ ['Green','Blue','GreenBlue'] if cr \ and self.color_sim_type=='Dichromatic' else [] opponent_types_surround = ['Green','Red','RedGreen','RedGreenBlue'] if cr \ and self.color_sim_type=='Trichromatic' else \ ['Green','Green','GreenBlue'] if cr \ and self.color_sim_type=='Dichromatic' else [] self.ColorToChannel = {'Red':0, 'Green':1, 'Blue':2} if cr else {} # Definitions useful for setting up sheets opponent_specs =[dict(opponent=el1, surround=el2) for el1, el2 in zip(opponent_types_center, opponent_types_surround)] properties['opponents'] = (lancet.Args(specs=opponent_specs) if opponent_types_center else lancet.Identity()) return properties
def test_args_repr2(self): """ As OrderedDicts not used internally, the dictionaries shown in the full specification list can change between calls. """ arg = lancet.Args(self.specs1) self.assertEquals(repr(arg).startswith('Args(specs=[{'), True) self.assertEquals(repr(arg).endswith('}],fp_precision=4)'), True)
def test_args_lexsort4(self): arg = lancet.Args(self.specs2) arg2 = arg.lexsort('+b', '-c') self.assertEquals(arg2.specs, [{ 'a': 1, 'b': 5, 'c': 3 }, { 'a': 3, 'b': 5, 'c': 1 }, { 'a': 2, 'b': 6, 'c': 2 }])
def setup_attributes(self, attrs): attrs = super(ColorEarlyVisionModel, self).setup_attributes(attrs) cr = 'cr' in self.dims opponent_types_center = ['Red', 'Green', 'Blue', 'RedGreenBlue' ] if cr else [] opponent_types_surround = ['Green', 'Red', 'RedGreen', 'RedGreenBlue' ] if cr else [] cone_types = ['Red', 'Green', 'Blue'] if cr else [] # Definitions useful for setting up sheets opponent_specs = [ dict(opponent=el1, surround=el2) for el1, el2 in zip(opponent_types_center, opponent_types_surround) ] attrs.Args['opponents'] = (lancet.Args( specs=opponent_specs) if opponent_types_center else lancet.Identity()) attrs.Args['cones'] = (lancet.List('cone', cone_types) if cone_types else lancet.Identity()) return attrs
def test_args_show_fp_precision6(self): arg = lancet.Args(self.specs5, fp_precision=6) expected = ('0: a=3.333333, b=5.555, c=1.1\n1: a=2.222222, b=6.666,' ' c=2.2\n2: a=1.111111, b=5.555, c=3.3\n') with capture(arg.show) as out: self.assertEquals(out, expected)
def test_args_contains(self): arg = lancet.Args(self.specs5) self.assertEqual('a' in arg, True)
def test_args_show(self): arg = lancet.Args(self.specs1) with capture(arg.show) as out: self.assertEquals(out, '0: a=3, b=5\n1: a=4, b=6\n')
def test_args_show_fp_precision0(self): arg = lancet.Args(self.specs2, fp_precision=0) with capture(arg.show) as out: self.assertEquals( out, '0: a=3, b=5, c=1\n1: a=2, b=6, c=2\n2: a=1, b=5, c=3\n')
def test_concatenate(self): arg1 = lancet.Args(self.specs1) arg2 = lancet.Args(self.specs2) self.assertEqual((arg1 + arg2).specs, self.specs1 + self.specs2)
def test_args_iter(self): arg = lancet.Args(self.specs1) self.assertEqual([el for el in arg], [self.specs1])
def test_args_len3(self): arg = lancet.Args(self.specs4) self.assertEqual(len(arg), 4)
def test_args_summary5(self): arg = lancet.Args(self.specs5) with capture(arg.summary) as out: self.assertEquals(out, "Items: 3\nVarying Keys: 'a', 'b', 'c'\n")
def test_args_len1(self): arg = lancet.Args(self.specs1) self.assertEqual(len(arg), 2)
def test_args_len2(self): arg = lancet.Args(self.specs3) self.assertEqual(len(arg), 3)
def test_args_varying_keys(self): arg = lancet.Args(self.specs4) self.assertEqual(arg.varying_keys, ['b', 'a', 'c'])
def test_args_constant_items(self): arg = lancet.Args(self.specs3) self.assertEqual(arg.constant_items, [('d', 5)])
def test_args_constant_keys(self): arg = lancet.Args(self.specs3) self.assertEqual(arg.constant_keys, ['d'])
def test_args_doesnt_contains(self): arg = lancet.Args(self.specs5) self.assertEqual('z' in arg, False)
def test_args_kws(self): arg = lancet.Args(a=3) self.assertEqual(arg.specs, [{'a': 3}])
def test_args_summary4(self): arg = lancet.Args(self.specs4) with capture(arg.summary) as out: self.assertEquals( out, "Items: 4\nVarying Keys: 'b', 'a', 'c'\nConstant Items: d=5\n")
def test_args_repr1(self): arg = lancet.Args(a=4, b=6) self.assertEquals(repr(arg), 'Args(fp_precision=4,a=4,b=6)')
def test_args_copy(self): arg = lancet.Args(self.specs1) self.assertEqual(arg.specs, arg.copy().specs)
def test_args_specs(self): arg = lancet.Args(self.specs1) self.assertEqual(arg.specs, self.specs1)
def test_args_str1(self): arg = lancet.Args(a=4, b=6) self.assertEquals(str(arg), 'Args(\n a=4,\n b=6\n)')
def test_args_next(self): arg = iter(lancet.Args(self.specs1)) self.assertEqual(next(arg), self.specs1)