def factorial_pressed(self): if '.' in self.result.text() or m.factorial(int( self.result.text())) is None: self.result.setText("Undefined") else: result_label = format(m.factorial(int(self.result.text())), '.15g') self.result.setText(result_label)
def test_factorial_correct(self): self.assertEqual(m.factorial(5), 120, "Expected solution: 120") self.assertEqual(m.factorial(12), 479001600, "Expected solution: 479 001 600") self.assertEqual(m.factorial(20), 2432902008176640000, "Expected solution: 2 432 902 008 176 640 000") self.assertEqual(m.factorial(0), 1, "Expected solution: 1") self.assertEqual( m.factorial(29), 8841761993739701954543616000000, "Expected solution: 8 841 761 993 739 701 954 543 616 000 000")
def test_factorial_incorrect(self): self.assertEqual( m.factorial(-1), None, "Expected solution: None -> Can't do factorial with negative number" ) self.assertEqual( m.factorial(1.5), None, "Expected solution: None -> Can't do factorial with decimal number" ) self.assertEqual( m.factorial(-10), None, "Expected solution: None -> Can't do factorial with negative number" )