def generate_TablePulseTemplates(self,number_of_entries,max_dist=RANGE):
     while 1:
         x = TablePulseTemplate()
         name = "TablePulseTemplate_{}".format(self.__TablePulseTemplateOffset)
         self.__TablePulseTemplateOffset +=1
         if bool(random.getrandbits(1)):
             x.identifier = name
         previous_min = 0
         previous_max = 0
         parameter_names = []
         
         for i in range(number_of_entries):
             dict_ = {}
             for j in ["time","voltage"]:
                 a = random.choice(["float","str","ParameterDeclaration"])
                 if a == "float":
                     if j == "time":
                         dict_[j] = random.uniform(previous_max,previous_max+max_dist)
                         previous_min = dict_[j]
                         previous_max = dict_[j]
                     else:
                         dict_[j] = random.uniform(-RANGE,RANGE)
                 elif a == "str":
                     dict_[j] = "_".join([name,"str",str(i),str(j)])
                     parameter_names.append(dict_[j])
                 elif a == "ParameterDeclaration":
                     if j == "time":
                         dict_[j] = self.generate_ParameterDeclaration(previous_min, previous_min+max_dist, name, previous_max).__next__()
                         previous_min = dict_[j].min_value
                         previous_max = dict_[j].max_value
                     else:
                         dict_[j] = self.generate_ParameterDeclaration().__next__()
                     parameter_names.append(dict_[j].name)
             x.add_entry(time=dict_["time"],voltage=dict_["voltage"],interpolation=random.choice(INTERPOLATION_STRATEGIES))
         yield x