Filled in "ReadInts" implementation and test
This commit is contained in:
parent
869142a314
commit
3f696f3060
@ -4,23 +4,36 @@ import (
|
|||||||
"bufio"
|
"bufio"
|
||||||
"io"
|
"io"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ReadInts(infile io.Reader) ([]int64, error) {
|
func ReadInts(inbuf io.Reader) ([]int64, error) {
|
||||||
ints := make([]int64, 0)
|
ints := make([]int64, 0)
|
||||||
|
|
||||||
var i int64
|
var i int64
|
||||||
|
|
||||||
fileReader := bufio.NewReader(infile)
|
fileReader := bufio.NewReader(inbuf)
|
||||||
line, err := fileReader.ReadString('\n')
|
line, err := fileReader.ReadString('\n')
|
||||||
|
|
||||||
for err == nil {
|
for err == nil {
|
||||||
i, err = strconv.ParseInt(line, 10, 0)
|
line = strings.TrimSpace(line)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
if len(line) > 0 {
|
||||||
|
i, err = strconv.ParseInt(line, 10, 0)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
ints = append(ints, i)
|
||||||
}
|
}
|
||||||
ints = append(ints, i)
|
|
||||||
line, err = fileReader.ReadString('\n')
|
line, err = fileReader.ReadString('\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err != nil && err != io.EOF {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return ints, nil
|
return ints, nil
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,50 @@
|
|||||||
package algs4_test
|
package algs4_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
import (
|
||||||
|
"meatballhat.com/algs4"
|
||||||
|
)
|
||||||
|
|
||||||
|
const INTS_STRING = `
|
||||||
|
999
|
||||||
|
848
|
||||||
|
-7271
|
||||||
|
7384
|
||||||
|
71878
|
||||||
|
92
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
-99
|
||||||
|
`
|
||||||
|
|
||||||
func TestReadInts(t *testing.T) {
|
func TestReadInts(t *testing.T) {
|
||||||
if 1 == 0 {
|
ints, err := algs4.ReadInts(strings.NewReader(INTS_STRING))
|
||||||
t.Error("WAT")
|
|
||||||
|
if err != nil {
|
||||||
|
t.Error("Wrong wrong wrong: ", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ints == nil {
|
||||||
|
t.Error("Nothing in the ints!: ", ints)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("ints =", ints)
|
||||||
|
|
||||||
|
if ints[0] != 999 {
|
||||||
|
t.Error("fail on 0: 999 !=", ints[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
if ints[4] != 71878 {
|
||||||
|
t.Error("fail on 4: 71878 !=", ints[4])
|
||||||
|
}
|
||||||
|
|
||||||
|
if ints[6] != 0 {
|
||||||
|
t.Error("fail on 6: 0 !=", ints[6])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user