import unittest import io from unittest import mock #import main import math import copy import inspect import student_X as main #Replace student_X with your filename class AnySidedDieRollTests(unittest.TestCase): def test_default_case(self): # Your test case logic here (replace the example assertion below) # You may also rename this to any function in the form of 'test_your_test_name(self):' die = main.AnySidedDie(13) incorrect = "" try: doc = die.roll.__doc__ doc = doc.strip() except: doc = "" test = doc != incorrect message = "No docstring." self.assertTrue(test, message) rolls = [] for i in range(1000): rolls.append(die.roll()) test = 1 in rolls message = "Couldn't roll a number that I should have been able to roll." self.assertTrue(test, message) test = 13 in rolls self.assertTrue(test, message) test = 8 in rolls self.assertTrue(test, message) test = not 0 in rolls message = "Rolls something it shouldn't be able to." self.assertTrue(test, message) test = not 14 in rolls self.assertTrue(test, message) die = main.AnySidedDie(113) rolls = [] for i in range(10000): rolls.append(die.roll()) test = 1 in rolls message = "Couldn't roll a number that I should have been able to roll." self.assertTrue(test, message) test = 113 in rolls self.assertTrue(test, message) test = 48 in rolls self.assertTrue(test, message) test = not 0 in rolls message = "Rolls something it shouldn't be able to." self.assertTrue(test, message) test = not 114 in rolls self.assertTrue(test, message) if __name__ == "__main__": tests = AnySidedDieRollTests() tests.test_default_case()