class TestCharacter(unittest.TestCase):

	def setUp(self):
		self.test_character = Character("Alice", Stats(1,1,1,1), 10, "female", 1)

	def tearDown(self):
		self.test_character.__del__()
		self.test_character = None

	# test default init
	def test_init(self):
		default = Character()
		self.assertEqual("Bob", default.name)

	def test_total_strength(self):
		self.assertEqual(self.test_character.total_strength(), 1)

	def test_total_hp(self):
		self.assertEqual(self.test_character.total_hp(), 1)

	def test_total_intelligence(self):
		self.assertEqual(self.test_character.total_intelligence(), 1)

	def test_total_agility(self):
		self.assertEqual(self.test_character.total_agility(), 1)

	def test_str(self):
		expected = 'Alice - 1\tHP: 1\tGOLD: 10\tSTR: 1\tINT: 1\tAGI: 1'
		self.assertEqual(self.test_character.__str__(), expected)

	def test_cmp_equal(self):
		copy = self.test_character
		self.assertEqual(self.test_character.__cmp__(copy), 0)

	def test_cmp_less_than(self):
		less = Character("Aaron")
		self.assertEqual(self.test_character.__cmp__(less), -1)

	def test_cmp_greater_than(self):
		greater = Character("Zeke")
		self.assertEqual(self.test_character.__cmp__(greater), 1)