-
Notifications
You must be signed in to change notification settings - Fork 10
Closed
Description
Tasks:
- Introduce an Interface on the Assessment collection types for printing them in a CSV
- Collapse the Assessment list by Language and Model
- Generate a summary CSV for each Language by Model
- Generate a summary CSV by Model
This is what we generated for v0.4.0 2088210 with the following script. However, we need to sum up ALL columns. Not just the score. We did that but it did not land in the CSVs.
package main
import (
"encoding/csv"
"fmt"
"os"
"sort"
"strconv"
"golang.org/x/exp/maps"
)
type data struct {
score int64
responseNoError int64
responseNotEmpty int64
responseWithCode int64
filesExecuted int64
coverageStatement int64
responseNoExcess int64
}
func main() {
file, err := os.Open("docs/reports/v0.4.0/evaluation.csv")
if err != nil {
panic(err)
}
rows, err := csv.NewReader(file).ReadAll()
if err != nil {
panic(err)
}
modelsSummed := map[string]*data{}
golangSummed := map[string]*data{}
javaSummed := map[string]*data{}
for i := 1; i < len(rows); i++ {
row := rows[i]
score, err := strconv.ParseInt(row[3], 10, 64)
if err != nil {
panic(err)
}
coverageStatement, err := strconv.ParseInt(row[4], 10, 64)
if err != nil {
panic(err)
}
filesExecuted, err := strconv.ParseInt(row[5], 10, 64)
if err != nil {
panic(err)
}
responseNoError, err := strconv.ParseInt(row[6], 10, 64)
if err != nil {
panic(err)
}
responseNoExcess, err := strconv.ParseInt(row[7], 10, 64)
if err != nil {
panic(err)
}
responseNotEmpty, err := strconv.ParseInt(row[8], 10, 64)
if err != nil {
panic(err)
}
responseWithCode, err := strconv.ParseInt(row[9], 10, 64)
if err != nil {
panic(err)
}
r, ok := modelsSummed[row[0]]
if !ok {
r = &data{}
modelsSummed[row[0]] = r
}
r.score += score
r.coverageStatement += coverageStatement
r.filesExecuted += filesExecuted
r.responseNoError += responseNoError
r.responseNoExcess += responseNoExcess
r.responseNotEmpty += responseNotEmpty
r.responseWithCode += responseWithCode
if row[1] == "golang" {
r, ok := golangSummed[row[0]]
if !ok {
r = &data{}
golangSummed[row[0]] = r
}
r.score += score
r.coverageStatement += coverageStatement
r.filesExecuted += filesExecuted
r.responseNoError += responseNoError
r.responseNoExcess += responseNoExcess
r.responseNotEmpty += responseNotEmpty
r.responseWithCode += responseWithCode
} else {
r, ok := javaSummed[row[0]]
if !ok {
r = &data{}
javaSummed[row[0]] = r
}
r.score += score
r.coverageStatement += coverageStatement
r.filesExecuted += filesExecuted
r.responseNoError += responseNoError
r.responseNoExcess += responseNoExcess
r.responseNotEmpty += responseNotEmpty
r.responseWithCode += responseWithCode
}
}
{
fmt.Println("Overall")
names := maps.Keys(modelsSummed)
sort.Strings(names)
fmt.Println("model,score,response-no-error,response-not-empty,response-with-code,files-executed,coverage-statement,response-no-excess")
for _, name := range names {
r := modelsSummed[name]
fmt.Printf("%s,%d,%d,%d,%d,%d,%d,%d\n", name, r.score, r.responseNoError, r.responseNotEmpty, r.responseWithCode, r.filesExecuted, r.coverageStatement, r.responseNoExcess)
}
}
{
fmt.Println("Golang")
names := maps.Keys(golangSummed)
sort.Strings(names)
fmt.Println("model,score,response-no-error,response-not-empty,response-with-code,files-executed,coverage-statement,response-no-excess")
for _, name := range names {
r := golangSummed[name]
fmt.Printf("%s,%d,%d,%d,%d,%d,%d,%d\n", name, r.score, r.responseNoError, r.responseNotEmpty, r.responseWithCode, r.filesExecuted, r.coverageStatement, r.responseNoExcess)
}
}
{
fmt.Println("Java")
names := maps.Keys(javaSummed)
sort.Strings(names)
fmt.Println("model,score,response-no-error,response-not-empty,response-with-code,files-executed,coverage-statement,response-no-excess")
for _, name := range names {
r := javaSummed[name]
fmt.Printf("%s,%d,%d,%d,%d,%d,%d,%d\n", name, r.score, r.responseNoError, r.responseNotEmpty, r.responseWithCode, r.filesExecuted, r.coverageStatement, r.responseNoExcess)
}
}
}
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request