mirror of https://github.com/ollama/ollama.git
				
				
				
			
		
			
	
	
		
			109 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | package discover | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"testing" | ||
|  | 
 | ||
|  | 	"github.com/ollama/ollama/app/lifecycle" | ||
|  | ) | ||
|  | 
 | ||
|  | func init() { | ||
|  | 	lifecycle.InitLogging() | ||
|  | } | ||
|  | 
 | ||
|  | func TestFilterOverlapByLibrary(t *testing.T) { | ||
|  | 	type testcase struct { | ||
|  | 		name string | ||
|  | 		inp  map[string]map[string]map[string]int | ||
|  | 		exp  []bool | ||
|  | 	} | ||
|  | 	for _, tc := range []testcase{ | ||
|  | 		{ | ||
|  | 			name: "empty", | ||
|  | 			inp:  map[string]map[string]map[string]int{}, | ||
|  | 			exp:  []bool{}, // needs deletion
 | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "single no overlap", | ||
|  | 			inp: map[string]map[string]map[string]int{ | ||
|  | 				"CUDA": { | ||
|  | 					"cuda_v12": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 0, | ||
|  | 					}, | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			exp: []bool{false}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "100% overlap pick 2nd", | ||
|  | 			inp: map[string]map[string]map[string]int{ | ||
|  | 				"CUDA": { | ||
|  | 					"cuda_v12": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 0, | ||
|  | 						"GPU-cd6c3216-03d2-a8eb-8235-2ffbf571712e": 1, | ||
|  | 					}, | ||
|  | 					"cuda_v13": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 2, | ||
|  | 						"GPU-cd6c3216-03d2-a8eb-8235-2ffbf571712e": 3, | ||
|  | 					}, | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			exp: []bool{true, true, false, false}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "100% overlap pick 1st", | ||
|  | 			inp: map[string]map[string]map[string]int{ | ||
|  | 				"CUDA": { | ||
|  | 					"cuda_v13": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 0, | ||
|  | 						"GPU-cd6c3216-03d2-a8eb-8235-2ffbf571712e": 1, | ||
|  | 					}, | ||
|  | 					"cuda_v12": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 2, | ||
|  | 						"GPU-cd6c3216-03d2-a8eb-8235-2ffbf571712e": 3, | ||
|  | 					}, | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			exp: []bool{false, false, true, true}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "partial overlap pick older", | ||
|  | 			inp: map[string]map[string]map[string]int{ | ||
|  | 				"CUDA": { | ||
|  | 					"cuda_v13": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 0, | ||
|  | 					}, | ||
|  | 					"cuda_v12": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 1, | ||
|  | 						"GPU-cd6c3216-03d2-a8eb-8235-2ffbf571712e": 2, | ||
|  | 					}, | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			exp: []bool{true, false, false}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "no overlap", | ||
|  | 			inp: map[string]map[string]map[string]int{ | ||
|  | 				"CUDA": { | ||
|  | 					"cuda_v13": { | ||
|  | 						"GPU-d7b00605-c0c8-152d-529d-e03726d5dc52": 0, | ||
|  | 					}, | ||
|  | 					"cuda_v12": { | ||
|  | 						"GPU-cd6c3216-03d2-a8eb-8235-2ffbf571712e": 1, | ||
|  | 					}, | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			exp: []bool{false, false}, | ||
|  | 		}, | ||
|  | 	} { | ||
|  | 		t.Run(tc.name, func(t *testing.T) { | ||
|  | 			needsDelete := make([]bool, len(tc.exp)) | ||
|  | 			filterOverlapByLibrary(tc.inp, needsDelete) | ||
|  | 			for i, exp := range tc.exp { | ||
|  | 				if needsDelete[i] != exp { | ||
|  | 					t.Fatalf("expected: %v\ngot: %v", tc.exp, needsDelete) | ||
|  | 				} | ||
|  | 			} | ||
|  | 		}) | ||
|  | 	} | ||
|  | } |