old_contents: from exchangelib.version import Build
  
  from .common import TimedTestCase
  
  
  class BuildTest(TimedTestCase):
      def test_magic(self):
          with self.assertRaises(ValueError):
              Build(7, 0)
          self.assertEqual(str(Build(9, 8, 7, 6)), '9.8.7.6')
  
      def test_compare(self):
          self.assertEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 2))
          self.assertNotEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 3))
          self.assertLess(Build(15, 0, 1, 2), Build(15, 0, 1, 3))
          self.assertLess(Build(15, 0, 1, 2), Build(15, 0, 2, 2))
          self.assertLess(Build(15, 0, 1, 2), Build(15, 1, 1, 2))
          self.assertLess(Build(15, 0, 1, 2), Build(16, 0, 1, 2))
          self.assertLessEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 2))
          self.assertGreater(Build(15, 0, 1, 2), Build(15, 0, 1, 1))
          self.assertGreater(Build(15, 0, 1, 2), Build(15, 0, 0, 2))
          self.assertGreater(Build(15, 1, 1, 2), Build(15, 0, 1, 2))
          self.assertGreater(Build(15, 0, 1, 2), Build(14, 0, 1, 2))
          self.assertGreaterEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 2))
  
      def test_api_version(self):
          self.assertEqual(Build(8, 0).api_version(), 'Exchange2007')
          self.assertEqual(Build(8, 1).api_version(), 'Exchange2007_SP1')
          self.assertEqual(Build(8, 2).api_version(), 'Exchange2007_SP1')
          self.assertEqual(Build(8, 3).api_version(), 'Exchange2007_SP1')
          self.assertEqual(Build(15, 0, 1, 1).api_version(), 'Exchange2013')
          self.assertEqual(Build(15, 0, 1, 1).api_version(), 'Exchange2013')
          self.assertEqual(Build(15, 0, 847, 0).api_version(), 'Exchange2013_SP1')
          with self.assertRaises(ValueError):
              Build(16, 0).api_version()
          with self.assertRaises(ValueError):
              Build(15, 4).api_version()
  
new_contents: from exchangelib.version import Build
  
  from .common import TimedTestCase
  
  
  class BuildTest(TimedTestCase):
      def test_magic(self):
          with self.assertRaises(ValueError):
              Build(7, 0)
          self.assertEqual(str(Build(9, 8, 7, 6)), '9.8.7.6')
          hash(Build(9, 8, 7, 6))
  
      def test_compare(self):
          self.assertEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 2))
          self.assertNotEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 3))
          self.assertLess(Build(15, 0, 1, 2), Build(15, 0, 1, 3))
          self.assertLess(Build(15, 0, 1, 2), Build(15, 0, 2, 2))
          self.assertLess(Build(15, 0, 1, 2), Build(15, 1, 1, 2))
          self.assertLess(Build(15, 0, 1, 2), Build(16, 0, 1, 2))
          self.assertLessEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 2))
          self.assertGreater(Build(15, 0, 1, 2), Build(15, 0, 1, 1))
          self.assertGreater(Build(15, 0, 1, 2), Build(15, 0, 0, 2))
          self.assertGreater(Build(15, 1, 1, 2), Build(15, 0, 1, 2))
          self.assertGreater(Build(15, 0, 1, 2), Build(14, 0, 1, 2))
          self.assertGreaterEqual(Build(15, 0, 1, 2), Build(15, 0, 1, 2))
  
      def test_api_version(self):
          self.assertEqual(Build(8, 0).api_version(), 'Exchange2007')
          self.assertEqual(Build(8, 1).api_version(), 'Exchange2007_SP1')
          self.assertEqual(Build(8, 2).api_version(), 'Exchange2007_SP1')
          self.assertEqual(Build(8, 3).api_version(), 'Exchange2007_SP1')
          self.assertEqual(Build(15, 0, 1, 1).api_version(), 'Exchange2013')
          self.assertEqual(Build(15, 0, 1, 1).api_version(), 'Exchange2013')
          self.assertEqual(Build(15, 0, 847, 0).api_version(), 'Exchange2013_SP1')
          with self.assertRaises(ValueError):
              Build(16, 0).api_version()
          with self.assertRaises(ValueError):
              Build(15, 4).api_version()
  
subject: Test hashing of Build