mirror of https://github.com/ollama/ollama.git
				
				
				
			
		
			
	
	
		
			92 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			92 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | package format | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"testing" | ||
|  | ) | ||
|  | 
 | ||
|  | func TestHumanBytes(t *testing.T) { | ||
|  | 	type testCase struct { | ||
|  | 		input    int64 | ||
|  | 		expected string | ||
|  | 	} | ||
|  | 
 | ||
|  | 	tests := []testCase{ | ||
|  | 		// Test bytes (B)
 | ||
|  | 		{0, "0 B"}, | ||
|  | 		{1, "1 B"}, | ||
|  | 		{999, "999 B"}, | ||
|  | 
 | ||
|  | 		// Test kilobytes (KB)
 | ||
|  | 		{1000, "1 KB"}, | ||
|  | 		{1500, "1.5 KB"}, | ||
|  | 		{999999, "999 KB"}, | ||
|  | 
 | ||
|  | 		// Test megabytes (MB)
 | ||
|  | 		{1000000, "1 MB"}, | ||
|  | 		{1500000, "1.5 MB"}, | ||
|  | 		{999999999, "999 MB"}, | ||
|  | 
 | ||
|  | 		// Test gigabytes (GB)
 | ||
|  | 		{1000000000, "1 GB"}, | ||
|  | 		{1500000000, "1.5 GB"}, | ||
|  | 		{999999999999, "999 GB"}, | ||
|  | 
 | ||
|  | 		// Test terabytes (TB)
 | ||
|  | 		{1000000000000, "1 TB"}, | ||
|  | 		{1500000000000, "1.5 TB"}, | ||
|  | 		{1999999999999, "2.0 TB"}, | ||
|  | 
 | ||
|  | 		// Test fractional values
 | ||
|  | 		{1234, "1.2 KB"}, | ||
|  | 		{1234567, "1.2 MB"}, | ||
|  | 		{1234567890, "1.2 GB"}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for _, tc := range tests { | ||
|  | 		t.Run(tc.expected, func(t *testing.T) { | ||
|  | 			result := HumanBytes(tc.input) | ||
|  | 			if result != tc.expected { | ||
|  | 				t.Errorf("Expected %s, got %s", tc.expected, result) | ||
|  | 			} | ||
|  | 		}) | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | func TestHumanBytes2(t *testing.T) { | ||
|  | 	type testCase struct { | ||
|  | 		input    uint64 | ||
|  | 		expected string | ||
|  | 	} | ||
|  | 
 | ||
|  | 	tests := []testCase{ | ||
|  | 		// Test bytes (B)
 | ||
|  | 		{0, "0 B"}, | ||
|  | 		{1, "1 B"}, | ||
|  | 		{1023, "1023 B"}, | ||
|  | 
 | ||
|  | 		// Test kibibytes (KiB)
 | ||
|  | 		{1024, "1.0 KiB"}, | ||
|  | 		{1536, "1.5 KiB"}, | ||
|  | 		{1048575, "1024.0 KiB"}, | ||
|  | 
 | ||
|  | 		// Test mebibytes (MiB)
 | ||
|  | 		{1048576, "1.0 MiB"}, | ||
|  | 		{1572864, "1.5 MiB"}, | ||
|  | 		{1073741823, "1024.0 MiB"}, | ||
|  | 
 | ||
|  | 		// Test gibibytes (GiB)
 | ||
|  | 		{1073741824, "1.0 GiB"}, | ||
|  | 		{1610612736, "1.5 GiB"}, | ||
|  | 		{2147483648, "2.0 GiB"}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for _, tc := range tests { | ||
|  | 		t.Run(tc.expected, func(t *testing.T) { | ||
|  | 			result := HumanBytes2(tc.input) | ||
|  | 			if result != tc.expected { | ||
|  | 				t.Errorf("Expected %s, got %s", tc.expected, result) | ||
|  | 			} | ||
|  | 		}) | ||
|  | 	} | ||
|  | } |