Skip to content

Commit

Permalink
Merge pull request #2530 from sopel-irc/more-calc-tests
Browse files Browse the repository at this point in the history
calc: improve help output, test coverage (now 100%)
  • Loading branch information
dgw authored Nov 1, 2023
2 parents 5de26c1 + 5854e8a commit 0371d0b
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions sopel/builtins/calc.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,27 @@


@plugin.command('c', 'calc')
@plugin.example('.c', 'Nothing to calculate.')
@plugin.example('.c foo * bar', "Can't process expression: Node type 'Name' is not supported.")
@plugin.example('.c 10 / 0', 'Division by zero is not supported in this universe.')
@plugin.example('.c 10\\2', 'Invalid syntax')
@plugin.example('.c (10**1000000)**2',
"Error running calculation: "
"ValueError('Pow expression too complex to calculate.')")
@plugin.example('.c (10**100000)**2 * (10**100000)**2',
"Error running calculation: "
"ValueError('Value is too large to be handled in limited time and memory.')")
@plugin.example('.c 5 + 3', '8')
@plugin.example('.c 0.9*10', '9')
@plugin.example('.c 10*0.9', '9')
@plugin.example('.c 2*(1+2)*3', '18')
@plugin.example('.c 2**10', '1024')
@plugin.example('.c 5 // 2', '2')
@plugin.example('.c 5 / 2', '2.5')
@plugin.example('.c 0.5**2', '0.25')
@plugin.example('.c 3**0', '1')
@plugin.example('.c 0 * 5', '0')
@plugin.example('.c 5**5', '3125')
@plugin.example('.c 2*(1+2)*3', '18', user_help=True)
@plugin.example('.c 2**10', '1024', user_help=True)
@plugin.example('.c 5 // 2', '2', user_help=True)
@plugin.example('.c 5 / 2', '2.5', user_help=True)
@plugin.output_prefix('[calc] ')
def c(bot, trigger):
"""Evaluate some calculation."""
Expand All @@ -39,5 +53,8 @@ def c(bot, trigger):
except SyntaxError:
bot.reply('Invalid syntax')
return
except ValueError as err:
bot.reply("Error running calculation: %r" % err)
return

bot.say(result)

0 comments on commit 0371d0b

Please sign in to comment.