mirror of
				https://github.com/MarioSpore/Grinch-AP.git
				synced 2025-10-21 20:21:32 -06:00 
			
		
		
		
	
		
			
	
	
		
			45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | # Tests for SI prefix in Utils.py | ||
|  | 
 | ||
|  | import unittest | ||
|  | from decimal import Decimal | ||
|  | from Utils import format_SI_prefix | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestGenerateMain(unittest.TestCase): | ||
|  |     """This tests SI prefix formatting in Utils.py""" | ||
|  |     def assertEqual(self, first, second, msg=None): | ||
|  |         # we strip spaces everywhere because that is an undefined implementation detail | ||
|  |         super().assertEqual(first.replace(" ", ""), second.replace(" ", ""), msg) | ||
|  | 
 | ||
|  |     def test_rounding(self): | ||
|  |         # we don't care if float(999.995) would fail due to error in precision | ||
|  |         self.assertEqual(format_SI_prefix(999.999), "1.00k") | ||
|  |         self.assertEqual(format_SI_prefix(1000.001), "1.00k") | ||
|  |         self.assertEqual(format_SI_prefix(Decimal("999.995")), "1.00k") | ||
|  |         self.assertEqual(format_SI_prefix(Decimal("1000.004")), "1.00k") | ||
|  | 
 | ||
|  |     def test_letters(self): | ||
|  |         self.assertEqual(format_SI_prefix(0e0), "0.00") | ||
|  |         self.assertEqual(format_SI_prefix(1e3), "1.00k") | ||
|  |         self.assertEqual(format_SI_prefix(2e6), "2.00M") | ||
|  |         self.assertEqual(format_SI_prefix(3e9), "3.00G") | ||
|  |         self.assertEqual(format_SI_prefix(4e12), "4.00T") | ||
|  |         self.assertEqual(format_SI_prefix(5e15), "5.00P") | ||
|  |         self.assertEqual(format_SI_prefix(6e18), "6.00E") | ||
|  |         self.assertEqual(format_SI_prefix(7e21), "7.00Z") | ||
|  |         self.assertEqual(format_SI_prefix(8e24), "8.00Y") | ||
|  | 
 | ||
|  |     def test_multiple_letters(self): | ||
|  |         self.assertEqual(format_SI_prefix(9e27), "9.00kY") | ||
|  | 
 | ||
|  |     def test_custom_power(self): | ||
|  |         self.assertEqual(format_SI_prefix(1023.99, 1024), "1023.99") | ||
|  |         self.assertEqual(format_SI_prefix(1034.24, 1024), "1.01k") | ||
|  | 
 | ||
|  |     def test_custom_labels(self): | ||
|  |         labels = ("E", "da", "h", "k") | ||
|  |         self.assertEqual(format_SI_prefix(1, 10, labels), "1.00E") | ||
|  |         self.assertEqual(format_SI_prefix(10, 10, labels), "1.00da") | ||
|  |         self.assertEqual(format_SI_prefix(100, 10, labels), "1.00h") | ||
|  |         self.assertEqual(format_SI_prefix(1000, 10, labels), "1.00k") |