text: """
  Notes regarding the implementation of triplets_with_sum:
  
  Expected return values for this function differ from
  the canonical data which specify a list(lists).
  
  Requiring set(tuples) instead allows the results to
  be returned in any order and still be verified correctly.
  """
  import unittest
  
  from pythagorean_triplet import triplets_with_sum
  
  
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.0.0
  
  class PythagoreanTripletTest(unittest.TestCase):
      def test_triplets_sum_12(self):
          expected = {(3, 4, 5)}
          self.assertEqual(triplets_with_sum(12), expected)
  
      def test_triplets_sum_108(self):
          expected = {(27, 36, 45)}
          self.assertEqual(triplets_with_sum(108), expected)
  
      def test_triplets_sum_1000(self):
          expected = {(200, 375, 425)}
          self.assertEqual(triplets_with_sum(1000), expected)
  
      def test_no_triplet_exists(self):
          expected = set()
          self.assertEqual(triplets_with_sum(1001), expected)
  
      def test_two_matching_triplets(self):
          expected = {(9, 40, 41), (15, 36, 39)}
          self.assertEqual(triplets_with_sum(90), expected)
  
      def test_several_matching_triplets(self):
          expected = {(40, 399, 401),
                      (56, 390, 394),
                      (105, 360, 375),
                      (120, 350, 370),
                      (140, 336, 364),
                      (168, 315, 357),
                      (210, 280, 350),
                      (240, 252, 348)}
          self.assertEqual(triplets_with_sum(840), expected)
  
      def test_triplets_for_large_numbers(self):
          expected = {(1200, 14375, 14425),
                      (1875, 14000, 14125),
                      (5000, 12000, 13000),
                      (6000, 11250, 12750),
                      (7500, 10000, 12500)}
          self.assertEqual(triplets_with_sum(30000), expected)
  
  
  if __name__ == '__main__':
      unittest.main()
  