code: def _validate_angles(self, angles):
          
  
          dataType = np.float64
          tempAngles = np.asarray(angles, dtype=dataType)
          tempAngles = tempAngles.reshape((3,))
  
          if np.shape(tempAngles) == (self.dimension,):
              if np.sum(tempAngles) < 360.0 or np.sum(tempAngles) > -360.0:
                  if (np.all(tempAngles != 180.0)
                          and np.all(tempAngles != 0.0)):
                      pass
                  else:
                      raise ValueError('Angles cannot be 180.0 or 0.0')
              else:
                  raise ValueError('Angles sum: {} is either greater than '
                                   '360.0 or less than -360.0'
                                   .format(np.sum(tempAngles)))
  
              for subset in it.permutations(tempAngles, r=self.dimension):
                  if not subset[0] < np.sum(tempAngles) - subset[0]:
                      raise ValueError('Each angle provided must be less'
                                       'than the sum of the other angles. '
                                       '{} is greater.'.format(subset[0]))
          else:
              raise ValueError('Incorrect array size. When converted to a '
                               'Numpy array, the shape is: {}, expected {}.'
                               .format(np.shape(tempAngles),
                                       (3,)))
          self.angles = tempAngles
docs: Ensure that the angles between the lattice_vectors are correct