func InitResults(testRun *config.TestRun) *Results {
	fileResults := make(map[string]*FileResult)
	for _, fileTest := range testRun.TestFiles {
		parts := strings.Split(fileTest.File, string(os.PathSeparator))
		parentDir := parts[len(parts)-2]
		fileName := parentDir + string(os.PathSeparator) + filepath.Base(fileTest.File)
		fileResults[fileName] = &FileResult{}
		fileResults[fileName].PayloadResults = make(map[int]*PayloadResult)
	}
	var setCounts = make(map[string]*SetCounts)
	for _, testSet := range testRun.TestSets {
		setCounts[testSet.Name] = &SetCounts{}
	}
	results := &Results{
		StartTime:   time.Now().Local().Format("02 Jan 2006, 15:04 MST"),
		Config:      testRun,
		FileResults: fileResults,
		SetCounts:   setCounts,
	}
	results.Reporting = &Reporting{
		OutputDir: filepath.FromSlash("./output"),
	}
	return results
}
InitResults builds an empty result object to be used in the testing
package results
import (
	"encoding/json"
	"fmt"
	"html/template"
	"io/ioutil"
	"log"
	"math"
	"os"
	"path/filepath"
	"sort"
	"strings"
	"time"
	"github.com/signalsciences/waf-testing-framework/pkg/config"
	"github.com/signalsciences/waf-testing-framework/pkg/static"
)
type TestResult struct {
	SetName  string `json:"-"`
	FileName string `json:"-"`
	Line     int    `json:"-"`
	Payload  string `json:"-"`
	Location string `json:"-"`
	Outcome  string
	Request  string
	Response string
}
type FileResult struct {
	FailedLines    []int `json:"-"`
	PayloadResults map[int]*PayloadResult
}
type PayloadResult struct {
	Line       int
	Payload    string
	SetResults map[string]*SetResult
}
type SetResult struct {
	Locations map[string]*TestResult
}
type SetCounts struct {
	FpCount          int
	FpPercent        float64
	FnCount          int
	FnPercent        float64
	InvCount         int
	ErrCount         int
	PassedCount      int
	FailPercent      float64
	TotalFPTestCount int
	TotalFNTestCount int
	TotalCount       int
}
type Results struct {
	StartTime   string
	EndTime     string
	Config      *config.TestRun
	SetCounts   map[string]*SetCounts
	FileResults map[string]*FileResult
	Reporting   *Reporting
}
type Reporting struct {
	OutputDir string
}
type OverallReport struct {
	TestSets  []string
	Locations []string
	Matrix    []*FileReport
	Config    string
	Results   *Results
}
type RowReport struct {
	Line      int
	Payload   string
	SetReport map[string][]int
}
type FileReport struct {
	FileName  string
	RowReport []*RowReport
}