Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import unittest
- def abbreviate(text):
- return "".join(w[0] for w in text.replace("_","").replace("-"," ").split()).upper()
- # Tests adapted from `problem-specifications//canonical-data.json` @ v1.7.0
- class AcronymTest(unittest.TestCase):
- def test_basic(self):
- self.assertEqual(abbreviate("Portable Network Graphics"), "PNG")
- def test_lowercase_words(self):
- self.assertEqual(abbreviate("Ruby on Rails"), "ROR")
- def test_punctuation(self):
- self.assertEqual(abbreviate("First In, First Out"), "FIFO")
- def test_all_caps_word(self):
- self.assertEqual(abbreviate("GNU Image Manipulation Program"), "GIMP")
- def test_punctuation_without_whitespace(self):
- self.assertEqual(abbreviate("Complementary metal-oxide semiconductor"), "CMOS")
- def test_very_long_abbreviation(self):
- self.assertEqual(
- abbreviate(
- "Rolling On The Floor Laughing So Hard That My Dogs Came Over And Licked Me"
- ),
- "ROTFLSHTMDCOALM",
- )
- def test_consecutive_delimiters(self):
- self.assertEqual(abbreviate("Something - I made up from thin air"), "SIMUFTA")
- def test_apostrophes(self):
- self.assertEqual(abbreviate("Halley's Comet"), "HC")
- def test_underscore_emphasis(self):
- self.assertEqual(abbreviate("The Road _Not_ Taken"), "TRNT")
- if __name__ == "__main__":
- unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment