Show
Ignore:
Timestamp:
01/18/10 16:45:34 (2 years ago)
Author:
apdavison
Message:

datastore key-generators now work properly if the component is the __main__ module.
Fixed a couple of rounding errors in signals.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/signals/analogs.py

    r390 r443  
    209209         
    210210        t = self.time_axis() 
    211         i_start = int((t_start-self.t_start)/self.dt) 
    212         i_stop = int((t_stop-self.t_start)/self.dt) 
     211        i_start = int(round((t_start-self.t_start)/self.dt)) 
     212        i_stop = int(round((t_stop-self.t_start)/self.dt)) 
    213213        signal = self.signal[i_start:i_stop] 
    214214        result = AnalogSignal(signal, self.dt, t_start, t_stop) 
     
    471471            errmsgs = [] 
    472472            for attr in "dt", "t_start", "t_stop": 
    473                 if getattr(val, attr) != getattr(self, attr): 
    474                     errmsgs.append("%s: %g != %g" % (attr, getattr(val, attr), getattr(self, attr))) 
     473                if getattr(self, attr) == 0: 
     474                    if getattr(val, attr) != 0: 
     475                        errmsgs.append("%s: %g != %g (diff=%g)" % (attr, getattr(val, attr), getattr(self, attr), getattr(val, attr)-getattr(self, attr))) 
     476                elif (getattr(val, attr) - getattr(self, attr))/getattr(self, attr) > 1e-12: 
     477                    errmsgs.append("%s: %g != %g (diff=%g)" % (attr, getattr(val, attr), getattr(self, attr), getattr(val, attr)-getattr(self, attr))) 
    475478            if len(val) != self.signal_length: 
    476479                errmsgs.append("signal length: %g != %g" % (len(val), self.signal_length)) 
     
    703706            mean 
    704707        """ 
    705         result = numpy.zeros((len(self), int((self.t_stop - self.t_start)/self.dt)),float) 
     708        result = numpy.zeros((len(self), int(round((self.t_stop - self.t_start)/self.dt))), float) 
    706709        for count, id in enumerate(self.id_list()): 
    707710            try: