hunk.code_window: 				Value:       "value",
   			},
   		}}, false},
   	}
   	for _, tc := range testCases {
  
hunk.labels: keep keep add keep keep keep
hunk.after_edit: 		{
   			"Valid number setting",
   			&PluginSetting{
   				Type:    "number",
   				Default: 10,
   			},
   			false,
   		},
  
hunk.file_path: model/manifest_test.go
hunk.type: add
file: // Copyright 2012-present Oliver Eilhard. All rights reserved.
  // Use of this source code is governed by a MIT-license.
  // See http://olivere.mit-license.org/license.txt for details.
  
  package elastic
  
  import (
  	"encoding/json"
  	"errors"
  )
  
  // SuggestField can be used by the caller to specify a suggest field
  // at index time. For a detailed example, see e.g.
  // https://www.elastic.co/blog/you-complete-me.
  type SuggestField struct {
  	inputs         []string
  	weight         int
  	contextQueries []SuggesterContextQuery
  }
  
  func NewSuggestField(input ...string) *SuggestField {
  	return &SuggestField{
  		inputs: input,
  		weight: -1,
  	}
  }
  
  func (f *SuggestField) Input(input ...string) *SuggestField {
  	if f.inputs == nil {
  		f.inputs = make([]string, 0)
  	}
  	f.inputs = append(f.inputs, input...)
  	return f
  }
  
  func (f *SuggestField) Weight(weight int) *SuggestField {
  	f.weight = weight
  	return f
  }
  
  func (f *SuggestField) ContextQuery(queries ...SuggesterContextQuery) *SuggestField {
  	f.contextQueries = append(f.contextQueries, queries...)
  	return f
  }
  
  // MarshalJSON encodes SuggestField into JSON.
  func (f *SuggestField) MarshalJSON() ([]byte, error) {
  	source := make(map[string]interface{})
  
  	if f.inputs != nil {
  		switch len(f.inputs) {
  		case 1:
  			source["input"] = f.inputs[0]
  		default:
  			source["input"] = f.inputs
  		}
  	}
  
  	if f.weight >= 0 {
  		source["weight"] = f.weight
  	}
  
  	switch len(f.contextQueries) {
  	case 0:
  	case 1:
  		src, err := f.contextQueries[0].Source()
  		if err != nil {
  			return nil, err
  		}
  		source["contexts"] = src
  	default:
  		ctxq := make(map[string]interface{})
  		for _, query := range f.contextQueries {
  			src, err := query.Source()
  			if err != nil {
  				return nil, err
  			}
  			m, ok := src.(map[string]interface{})
  			if !ok {
  				return nil, errors.New("SuggesterContextQuery must be of type map[string]interface{}")
  			}
  			for k, v := range m {
  				ctxq[k] = v
  			}
  		}
  		source["contexts"] = ctxq
  	}
  
  	return json.Marshal(source)
  }
  