code: def validate(self) -> bool:
          
          # Asset class allocation should match the sum of children's allocations.
          # Each group should be compared.
          sum = Decimal(0)
  
          # Go through each asset class, not just the top level.
          for ac in self.asset_classes:
              if ac.classes:
                  # get the sum of all the children's allocations
                  child_alloc_sum = ac.child_allocation
                  # compare to set allocation
                  if ac.allocation != child_alloc_sum:
                      message = f"The sum of child allocations {child_alloc_sum:.2f} invalid for {ac}!"
                      self.logger.warning(message)
                      print(message)
                      return False
  
          # also make sure that the sum of 1st level children matches 100
          for ac in self.classes:
              sum += ac.allocation
          if sum != Decimal(100):
              message = f"The sum of all allocations ({sum:.2f}) does not equal 100!"
              self.logger.warning(message)
              print(message)
              return False
  
          return True
docs: Validate that the values match. Incomplete!