package metric import ( "github.com/prometheus/client_golang/prometheus" "reflect" "testing" ) func Test_labelAlignment(t *testing.T) { tds := []struct { in1 []string in2 prometheus.Labels in2New prometheus.Labels }{ { []string{"label1", "label2"}, map[string]string{"label1": "1"}, map[string]string{"label1": "1", "label2": missVal}, }, { []string{"label1", "label3"}, map[string]string{"label1": "1", "label2": "2"}, map[string]string{"label1": "1", "label3": missVal}, }, { []string{}, map[string]string{"label1": "1", "label2": "2"}, map[string]string{}, }, { []string{"label1", "label3", "label4"}, map[string]string{"label1": "1", "label2": "2"}, map[string]string{"label1": "1", "label3": missVal, "label4": missVal}, }, } for _, d := range tds { //var org map[string]string //copy(org, d.in2) result := labelAlignment(d.in1, d.in2) t.Log(result, d.in2New) if !reflect.DeepEqual(result, d.in2New) { t.Errorf("Input: %#v, Expected is not same as , get ", d) } } }