Example #1
0
 def from_basic(self, data):
     check_data_type(list, data)
     if len(data) < 3:
         raise BadData(
             'Too few elements. Expected 3 or 4 but got %d' % (len(data),)
         )
     if len(data) > 4:
         raise BadData(
             'Too many elements. Expected 3 or 4 but got %d' % (len(data),)
         )
     check_data_type(integer_types, data[1])
     check_data_type(integer_types, data[2])
     source_template = self.flatmapped_strategy.from_basic(data[0])
     if len(data) == 4:
         return self.TemplateFromBasic(
             source_template=source_template,
             parameter_seed=data[1], template_seed=data[2],
             basic_data=tupleize_basic(data[3])
         )
     else:
         assert len(data) == 3
         return self.TemplateFromSeed(
             source_template=source_template,
             parameter_seed=data[1], template_seed=data[2],
         )
Example #2
0
    def from_basic(self, data):
        check_data_type(list, data)
        check_length(2, data)
        i, value = data
        check_data_type(integer_types, i)
        if i < 0:
            raise BadData('Index out of range: %d < 0' % (i, ))
        elif i >= len(self.element_strategies):
            raise BadData('Index out of range: %d >= %d' %
                          (i, len(self.element_strategies)))

        return (i, self.element_strategies[i].from_basic(value))
Example #3
0
 def from_basic(self, data):
     check_data_type(list, data)
     if len(data) < 3:
         raise BadData('Expected at least 3 elements but got %d' %
                       (len(data), ))
     if len(data) > 4:
         raise BadData('Expected at most 4 elements but got %d' %
                       (len(data), ))
     check_data_type(integer_types, data[1])
     check_data_type(integer_types, data[2])
     target_data = data[-1] if len(data) == 4 else not_set
     return FlatMapTemplate(
         self.flatmapped_strategy.from_basic(data[0]),
         target_data=target_data,
         target_parameter_seed=data[1],
         target_template_seed=data[2],
     )