/* Populates a trie structure with the contents of a text file that has the provided name */ func PopulateTrie(file string) { trie = wordTrie.NewTrie() // Open the text file f, err := os.Open(file) //f, err := os.Open(file) check(err) // Begin scanning the text file line by line, populate the trie scanner := bufio.NewScanner(f) // Initial available memory read prior to entering the while loop runtime.ReadMemStats(&mem) currentMemory := mem.Alloc // Add entries to the trie as long as there is enough memory for scanner.Scan() && currentMemory < memoryLimit { runtime.ReadMemStats(&mem) currentMemory = mem.TotalAlloc trie.AddEntry(scanner.Text()) } if err := scanner.Err(); err != nil { fmt.Fprintln(os.Stderr, "reading standard input:", err) } f.Close() fmt.Println(trie.GetNumberOfItems()) //TESTING }
func testEntry(t *testing.T) { var trie = wordTrie.NewTrie() trie.AddEntry("car") trie.AddEntry("cars") word := trie.FindEntries("c", uint8(5)) if string(word) != "[car cars]" { t.Errorf("Entry not correct") } }
package readWordFile import ( "bufio" "fmt" "github.com/fridaysedge/info344-class-code/suggestion-service-mod/wordTrie" "os" "runtime" "strconv" ) var trie = wordTrie.NewTrie() var mem runtime.MemStats var memoryLimit = uint64(800000000) /* */ func check(e error) { if e != nil { panic(e) } } /* Populates a trie structure with the contents of a text file that has the provided name */ func PopulateTrie(file string) { trie = wordTrie.NewTrie() // Open the text file f, err := os.Open(file)