func (c *TestProjectConfig) GetExperimentList() (experimentList []entities.Experiment) {
	for _, experiment := range c.ExperimentMap {
		experimentList = append(experimentList, experiment)
	}
	return experimentList
}
GetExperimentList returns an array of all the experiments
package optimizelytest
import (
	"errors"
	"fmt"
	"strconv"
	optlyconfig "github.com/optimizely/go-sdk/pkg/config"
	"github.com/optimizely/go-sdk/pkg/entities"
)
type TestProjectConfig struct {
	Datafile             string
	AccountID            string
	ProjectID            string
	Revision             string
	ExperimentKeyToIDMap map[string]string
	AudienceMap          map[string]entities.Audience
	AttributeMap         map[string]entities.Attribute
	EventMap             map[string]entities.Event
	AttributeKeyToIDMap  map[string]string
	ExperimentMap        map[string]entities.Experiment
	FeatureMap           map[string]entities.Feature
	GroupMap             map[string]entities.Group
	RolloutMap           map[string]entities.Rollout
	nextID               int
	AnonymizeIP          bool
	BotFiltering         bool
	sendFlagDecisions    bool
	sdkKey               string
	environmentKey       string
}
func (c *TestProjectConfig) GetDatafile() string {
	return c.Datafile
}
func (c *TestProjectConfig) GetProjectID() string {
	return c.ProjectID
}
func (c *TestProjectConfig) GetRevision() string {
	return c.Revision
}
func (c *TestProjectConfig) GetAccountID() string {
	return c.AccountID
}
func (c *TestProjectConfig) GetAnonymizeIP() bool {
	return c.AnonymizeIP
}
func (c *TestProjectConfig) GetAttributes() (attributeList []entities.Attribute) {
	for _, attribute := range c.AttributeMap {
		attributeList = append(attributeList, attribute)
	}
	return attributeList
}
func (c *TestProjectConfig) GetAttributeID(key string) string {
	return c.AttributeKeyToIDMap[key]
}
func (c *TestProjectConfig) GetBotFiltering() bool {
	return c.BotFiltering
}
func (c *TestProjectConfig) GetSdkKey() string {
	return c.sdkKey
}
func (c *TestProjectConfig) GetEnvironmentKey() string {
	return c.environmentKey
}
func (c *TestProjectConfig) GetEvents() (eventList []entities.Event) {
	for _, event := range c.EventMap {
		eventList = append(eventList, event)
	}
	return eventList
}
func (c *TestProjectConfig) GetEventByKey(eventKey string) (entities.Event, error) {
	if event, ok := c.EventMap[eventKey]; ok {
		return event, nil
	}
	errMessage := fmt.Sprintf("Event with key %s not found", eventKey)
	return entities.Event{}, errors.New(errMessage)
}
func (c *TestProjectConfig) GetFeatureByKey(featureKey string) (entities.Feature, error) {
	if feature, ok := c.FeatureMap[featureKey]; ok {
		return feature, nil
	}
	errMessage := fmt.Sprintf("Feature with key %s not found", featureKey)
	return entities.Feature{}, errors.New(errMessage)
}
func (c *TestProjectConfig) GetVariableByKey(featureKey, variableKey string) (entities.Variable, error) {
	var variable entities.Variable
	var err = fmt.Errorf("variable with key %s not found", featureKey)
	if feature, ok := c.FeatureMap[featureKey]; ok {
		if variable, ok = feature.VariableMap[featureKey]; ok {
			return variable, nil
		}
	}
	return variable, err
}
func (c *TestProjectConfig) GetAttributeByKey(key string) (entities.Attribute, error) {
	if attributeID, ok := c.AttributeKeyToIDMap[key]; ok {
		return c.AttributeMap[attributeID], nil
	}
	errMessage := fmt.Sprintf(`Attribute with key "%s" not found`, key)
	return entities.Attribute{}, errors.New(errMessage)
}
func (c *TestProjectConfig) GetFeatureList() (featureList []entities.Feature) {
	for _, feature := range c.FeatureMap {
		featureList = append(featureList, feature)
	}
	return featureList
}