|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  from src.models.abstract_reference import abstract_reference
 | 
	
		
			
				|  |  |  from src.errors.argument_exception import argument_exception
 | 
	
		
			
				|  |  | +from src.validation.validator import validator
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class measurement_unit_model (abstract_reference):
 | 
	
		
			
				|  |  |      # Базовая единица измерения
 | 
	
	
		
			
				|  | @@ -7,26 +8,19 @@ class measurement_unit_model (abstract_reference):
 | 
	
		
			
				|  |  |      # Базовый коэффициент
 | 
	
		
			
				|  |  |      __base_coefficient = None
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    def __init__(self, base_coefficient, base_measurement=None):
 | 
	
		
			
				|  |  | +    def __init__(self, base_coefficient = 1, base_measurement=None):
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |          Args:
 | 
	
		
			
				|  |  |              base_measurement (measurement_unit_model): Базовая единица измерения
 | 
	
		
			
				|  |  |              base_coefficint (number): Базовый коэффициент
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | -        # Проверяем чтоды base_measurement был типа measurement_unit_model либо None (self-ref)
 | 
	
		
			
				|  |  | -        if not isinstance(base_measurement, measurement_unit_model)\
 | 
	
		
			
				|  |  | -            and base_measurement is not None:
 | 
	
		
			
				|  |  | -            raise argument_exception(
 | 
	
		
			
				|  |  | -                "Базовая единица измерения должна быть типа measurement_unit_model")
 | 
	
		
			
				|  |  | -        # Присваиваем self-ref когда не передан base_measurement
 | 
	
		
			
				|  |  | -        if base_measurement is None:
 | 
	
		
			
				|  |  | -            self.__base_measurement_unit = self
 | 
	
		
			
				|  |  | -        else: self.__base_measurement_unit = base_measurement
 | 
	
		
			
				|  |  | -        try:
 | 
	
		
			
				|  |  | -        # Пробуем конвертировать коэффициент во float
 | 
	
		
			
				|  |  | -            self.__base_coefficient = float(base_coefficient)
 | 
	
		
			
				|  |  | -        except TypeError as e:
 | 
	
		
			
				|  |  | -            raise argument_exception("Несоответствие типа базового коэффициента")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        validator.check_type_any(base_measurement, measurement_unit_model, None)
 | 
	
		
			
				|  |  | +        validator.check_number(base_measurement)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        self.__base_measurement_unit = base_measurement
 | 
	
		
			
				|  |  | +        self.__base_coefficient = base_coefficient
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @property
 | 
	
		
			
				|  |  |      def base_measurement_unit(self):
 | 
	
	
		
			
				|  | @@ -34,6 +28,9 @@ class measurement_unit_model (abstract_reference):
 | 
	
		
			
				|  |  |              Базовая единица измерения
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        if self.__base_measurement_unit is None:
 | 
	
		
			
				|  |  | +            return self
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          return self.__base_measurement_unit
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      @property
 |