def test_returns_string_for_federated_aggregate(self):
     comp = computation_test_utils.create_dummy_called_federated_aggregate(
         accumulate_parameter_name='a',
         merge_parameter_name='b',
         report_parameter_name='c')
     compact_string = comp.compact_representation()
     self.assertEqual(
         compact_string,
         'federated_aggregate(<data,data,(a -> data),(b -> data),(c -> data)>)'
     )
     formatted_string = comp.formatted_representation()
     # pyformat: disable
     self.assertEqual(
         formatted_string, 'federated_aggregate(<\n'
         '  data,\n'
         '  data,\n'
         '  (a -> data),\n'
         '  (b -> data),\n'
         '  (c -> data)\n'
         '>)')
     # pyformat: enable
     structural_string = comp.structural_representation()
     # pyformat: disable
     self.assertEqual(
         structural_string, '                    Call\n'
         '                   /    \\\n'
         'federated_aggregate      Tuple\n'
         '                         |\n'
         '                         [data, data, Lambda(a), Lambda(b), Lambda(c)]\n'
         '                                      |          |          |\n'
         '                                      data       data       data')
Esempio n. 2
0
 def test_returns_correct_example_of_broadcast_dependent_on_aggregate(self):
     aggregate = computation_test_utils.create_dummy_called_federated_aggregate(
         'accumulate_parameter', 'merge_parameter', 'report_parameter')
     broadcasted_aggregate = computation_constructing_utils.create_federated_broadcast(
         aggregate)
     with self.assertRaisesRegex(ValueError, 'accumulate_parameter'):
         tree_analysis.check_broadcast_not_dependent_on_aggregate(
             broadcasted_aggregate)
 def test_finds_broadcast_dependent_on_aggregate(self):
     aggregate = computation_test_utils.create_dummy_called_federated_aggregate(
         'accumulate_parameter', 'merge_parameter', 'report_parameter')
     broadcasted_aggregate = building_block_factory.create_federated_broadcast(
         aggregate)
     with self.assertRaises(ValueError):
         tree_analysis.check_broadcast_not_dependent_on_aggregate(
             broadcasted_aggregate)