mirror of
https://github.com/LdDl/go-darknet.git
synced 2025-09-26 19:51:27 +08:00
test sections just in case
This commit is contained in:
@@ -80,4 +80,4 @@ func (n *YOLONetwork) Detect(img *DarknetImage) (*DetectionResult, error) {
|
||||
OverallTimeTaken: endTimeOverall.Sub(startTime),
|
||||
}
|
||||
return &out, nil
|
||||
}
|
||||
}
|
||||
|
58
section.go
Normal file
58
section.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package darknet
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Section represents a section in the configuration file.
|
||||
type Section struct {
|
||||
Type string
|
||||
Options []string
|
||||
}
|
||||
|
||||
// readCfg reads a configuration file and returns a list of sections.
|
||||
func readCfg(filename string) ([]Section, error) {
|
||||
// Open the configuration file.
|
||||
file, err := os.Open(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// Create a list of sections.
|
||||
var sections []Section
|
||||
var current *Section
|
||||
|
||||
// Read each line in the file.
|
||||
scanner := bufio.NewScanner(file)
|
||||
for scanner.Scan() {
|
||||
line := strings.TrimSpace(scanner.Text())
|
||||
if line == "" {
|
||||
continue
|
||||
}
|
||||
switch line[0] {
|
||||
case '[':
|
||||
if current != nil {
|
||||
sections = append(sections, *current)
|
||||
}
|
||||
current = &Section{Type: line}
|
||||
case '#', ';', '\x00':
|
||||
// Ignore comments and empty lines.
|
||||
default:
|
||||
if current == nil {
|
||||
current = &Section{}
|
||||
}
|
||||
current.Options = append(current.Options, line)
|
||||
}
|
||||
}
|
||||
if current != nil {
|
||||
sections = append(sections, *current)
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return sections, nil
|
||||
}
|
20
section_test.go
Normal file
20
section_test.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package darknet
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestReadSectionsFromCfg(t *testing.T) {
|
||||
sections, err := readCfg("./cmd/examples/yolov7-tiny.cfg")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
for _, s := range sections {
|
||||
fmt.Println(s.Type)
|
||||
for _, o := range s.Options {
|
||||
fmt.Println("\t", o)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user