In src/main.go
you will find a basic web server written in GoLang. It accepts some requests to perform the following operations
1,2,3
4,5,6
7,8,9
- Return the matrix as a string in matrix format.
// Expected output
1,2,3
4,5,6
7,8,9
- Return the matrix as a string in matrix format where the columns and rows are inverted
// Expected output
1,4,7
2,5,8
3,6,9
- Return the matrix as a 1 line string, with values separated by commas.
// Expected output
1,2,3,4,5,6,7,8,9
- Return the sum of the integers in the matrix
// Expected output
45
- Return the product of the integers in the matrix
// Expected output
362880
The input file to these functions is a matrix, of any dimension where the number of rows are equal to the number of columns (square). Each value is an integer, and there is no header row. matrix.csv is example valid input.
git clone https://github.com/ivoneijr/go-matrix-csv.git
cd go-matrix-csv
go build -o ./build/main src/main.go
./build/main
git clone https://github.com/ivoneijr/go-matrix-csv.git
cd go-matrix-csv
go run src/*.go
curl -F 'file={CSV_PATH}' "localhost:8080/echo"
curl -F 'file={CSV_PATH}' "localhost:8080/invert"
curl -F 'file={CSV_PATH}' "localhost:8080/flatern"
curl -F 'file={CSV_PATH}' "localhost:8080/sum"
curl -F 'file={CSV_PATH}' "localhost:8080/multiply"
CSV_PATH
is your local csv file path
Remember, the form-data key should be named as file
.
You can use samples in /docs/sample
You can see coverage test report runing go tool cover -html=coverage/report.out
inside project file (go-matrix-csv)
- The solution runs
- The solution performs all cases correctly
- The code is easy to read
- The code is reasonably documented
- The code is tested
- The code is robust and handles invalid input and provides helpful error messages
Have fun 🤓