def test_SynapseCalibration(self):
     sc = cal.SynapseCalibration()
     sc.setDefaults()
     self.assertEqual(sc.size(), 1)
     coeffs = pywrapstdvector.Vector_Double([0,1])
     sc.reset(0,cal.Polynomial(coeffs))
     self.assertEqual(sc.getMinAnalogWeight(), 0)
     self.assertEqual(sc.getMaxAnalogWeight(), 15)
Beispiel #2
0
    def test_vector(self):
        import pywraptestpypp as t
        import pywrapstdvector
        v_f = pywrapstdvector.Vector_Float()
        v_d = pywrapstdvector.Vector_Double()
        t.test_vector(v_f)
        t.test_vector(v_d)

        self.assertAlmostEqual(v_f[0], 0.7)
        self.assertAlmostEqual(v_d[0], 1.4)
    def test_overloads(self):
        dtype, size = self.callit(pywrapstdvector.Vector_Double(self.myList))
        self.assertEqual(size, len(self.myList))
        self.assertEqual(dtype, float)
        dtype, size = self.callit(numpy.array(self.myList, dtype=numpy.double))
        self.assertEqual(size, len(self.myList))
        self.assertEqual(dtype, float)
        dtype, size = self.callit(pywrapstdvector.Vector_Int32(self.myList))
        self.assertEqual(size, len(self.myList))
        self.assertEqual(dtype, int)
        dtype, size = self.callit(numpy.array(self.myList, dtype=numpy.int32))
        self.assertEqual(size, len(self.myList))
        self.assertEqual(dtype, int)

        # Here we except float, because the wrapper is registered first
        dtype, size = self.callit([0.1, 0.2, 0.3, 0.4])
        self.assertEqual(dtype, float)
        dtype, size = self.callit([1, 2, 3, 4])
        self.assertEqual(dtype, float)
        dtype, size = self.callit((1, 2, 3, 4))
        self.assertEqual(dtype, float)
 def test_StoreSynapseCalibration(self):
     """
     typical storage stuff for one HICANN quadrant (top left)
     Here: 4 different gmax values, but always the same divisor (11)
     """
     hc = cal.HICANNCollection()
     sr_coll = hc.atSynapseRowCollection()
     # vmax values
     vmax0 = 100
     vmax1 = 150
     vmax2 = 200
     vmax3 = 250
     # configure  floating gates, hardware etc.
     divisor=11
     # measure for many different settings
     for sel_gmax in range(4):
         for driver in range(56):
             for line in range(2):
                 row_address = 2+ driver*2 + line
                 # measure and create synapse calibration function
                 coeffs = pywrapstdvector.Vector_Double([1,2,3])
                 sc = cal.SynapseCalibration()
                 sc.reset(0,cal.Polynomial(coeffs))
                 # get SynapseRowCalibration
                 if sr_coll.exists(row_address):
                     sr_calib = sr_coll.at(row_address)
                 else:
                     sr_calib = cal.SynapseRowCalibration()
                     sr_coll.insert(row_address,sr_calib)
                 # store with used gmax config
                 gmax_config = cal.GmaxConfig(sel_gmax,divisor)
                 if not sr_calib.exists(gmax_config):
                     sr_calib.insert(gmax_config, sc)
                 else:
                     print("Warning, calibration for synapse row ", row_address, "gmax_config", gmax_config, "already exists.")
                     print("Existing calib is not overwritten")
     self.assertEqual(sr_coll.size(), 112) # one quadrant = 112 synapse rows
     self.assertEqual(sr_coll.at(2).size(),4) # 4 sel_gmax settings
 def setUp(self):
     self.myList = list(range(5, 20))
     self.sizeLongList = int(1e6)
     self.aLongList = list(range(self.sizeLongList))
     self.aLongVector = pywrapstdvector.Vector_Double(self.aLongList)
     self.aLongNumpyArray = numpy.array([float(x) for x in self.aLongList])