def test_reaction(self): #TODO: give specific net and specific values an = AdaptiveNetwork(self.sample) for _ in xrange(self.N): pack = S([random.randint(0, 10) for _ in range(4)]) out = np.array([w * ru.value_for(pack) for ru, w in self.sample]).sum() self.assertEqual(an.reaction(pack), out)
def test_forgetting(self): # TODO set proper values an = AdaptiveNetwork(self.sample) an.forgetting() for ru, w in an.units: for ruw, ww in self.sample: if ruw == ru: self.assertTrue(w < ww or ww == 0)
def setUp(self): self.N = 100 self.sample = [ (ReactiveUnit(S([1, 2, 3, 4])), 0.5), (ReactiveUnit(S([1, 1, 1, 1])), 0.8), (ReactiveUnit(S([2, 2, 2, 2])), 0.2), (ReactiveUnit(S([3, 3, 3, 3])), 1) ] self.an = AdaptiveNetwork(self.sample)
def test_incrase_sample(self): for ru, _ in self.sample: an = AdaptiveNetwork(self.sample) an.increase_sample(ru.central_value) wwan = (an.units[an._index_of(ru)])[1] for wewru, weww in self.sample: print weww, (an.units[an._index_of(wewru)])[1] self.assertTrue(weww <= (an.units[an._index_of(wewru)])[1]) if ru == wewru: self.assertTrue(weww < wwan or weww == wwan == 1)
def test_remove_low_units(self): an = AdaptiveNetwork(self.sample) an.remove_low_units(0.9) self.assertTrue(len(an.units) == 1)
def test__update_units_doubles(self): an = AdaptiveNetwork(self.sample) an._update_units(lambda u, w: (u, w * 2)) self.assertTrue(len(an.units) == len(self.sample) and len(an.units) > 0) self.assertEqual([(u, w * 2) for u, w in self.sample], an.units)
def test__update_units_to_None(self): an = AdaptiveNetwork(self.sample) an._update_units(lambda u, w: None) self.assertEqual(an.units, [])
class TestAdaptiveNetwork(unittest.TestCase): def setUp(self): self.N = 100 self.sample = [ (ReactiveUnit(S([1, 2, 3, 4])), 0.5), (ReactiveUnit(S([1, 1, 1, 1])), 0.8), (ReactiveUnit(S([2, 2, 2, 2])), 0.2), (ReactiveUnit(S([3, 3, 3, 3])), 1) ] self.an = AdaptiveNetwork(self.sample) def test__index_of(self): self.assertEqual(-1, self.an._index_of(ReactiveUnit(S([6, 6, 6])))) self.assertEqual(1, self.an._index_of(ReactiveUnit(S([1, 1, 1, 1])))) self.assertEqual(-1, AdaptiveNetwork()._index_of(ReactiveUnit(S([23, 4])))) def test_add_reactive_unit(self): for _ in xrange(2): self.an.add_reactive_unit(ReactiveUnit(S([1, 1]))) self.assertTrue(-1 != self.an._index_of(ReactiveUnit(S([1, 1])))) self.assertTrue(-1 == self.an._index_of(ReactiveUnit(S([1, 1, 1])))) def test_reaction(self): #TODO: give specific net and specific values an = AdaptiveNetwork(self.sample) for _ in xrange(self.N): pack = S([random.randint(0, 10) for _ in range(4)]) out = np.array([w * ru.value_for(pack) for ru, w in self.sample]).sum() self.assertEqual(an.reaction(pack), out) def test__update_units_to_None(self): an = AdaptiveNetwork(self.sample) an._update_units(lambda u, w: None) self.assertEqual(an.units, []) def test__update_units_doubles(self): an = AdaptiveNetwork(self.sample) an._update_units(lambda u, w: (u, w * 2)) self.assertTrue(len(an.units) == len(self.sample) and len(an.units) > 0) self.assertEqual([(u, w * 2) for u, w in self.sample], an.units) def test_remove_low_units(self): an = AdaptiveNetwork(self.sample) an.remove_low_units(0.9) self.assertTrue(len(an.units) == 1) def test_incrase_sample(self): for ru, _ in self.sample: an = AdaptiveNetwork(self.sample) an.increase_sample(ru.central_value) wwan = (an.units[an._index_of(ru)])[1] for wewru, weww in self.sample: print weww, (an.units[an._index_of(wewru)])[1] self.assertTrue(weww <= (an.units[an._index_of(wewru)])[1]) if ru == wewru: self.assertTrue(weww < wwan or weww == wwan == 1) def test_forgetting(self): # TODO set proper values an = AdaptiveNetwork(self.sample) an.forgetting() for ru, w in an.units: for ruw, ww in self.sample: if ruw == ru: self.assertTrue(w < ww or ww == 0)