Fix some tests.
[lightning.git] / tilestats.go
index 733b0fda827b445143123ea2a2c2867afded1876..63302a61516db5c469c02aaf4126c163592718da 100644 (file)
@@ -44,6 +44,9 @@ func (cmd *tilingStats) RunCommand(prog string, args []string, stdin io.Reader,
                return 0
        } else if err != nil {
                return 2
+       } else if flags.NArg() > 0 {
+               err = fmt.Errorf("errant command line arguments after parsed flags: %v", flags.Args())
+               return 2
        }
 
        if *pprof != "" {
@@ -140,9 +143,24 @@ func (cmd *tilingStats) RunCommand(prog string, args []string, stdin io.Reader,
                        seqnames = append(seqnames, seqname)
                }
                sort.Strings(seqnames)
+               // Mark duplicate tags (tags that place more than once
+               // on the reference)
+               duptag := map[tagID]bool{}
+               for _, seqname := range seqnames {
+                       for _, libref := range cseq.TileSequences[seqname] {
+                               if _, seen := duptag[libref.Tag]; seen {
+                                       duptag[libref.Tag] = true
+                               } else {
+                                       duptag[libref.Tag] = false
+                               }
+                       }
+               }
                for _, seqname := range seqnames {
                        pos := 0
                        for _, libref := range cseq.TileSequences[seqname] {
+                               if duptag[libref.Tag] {
+                                       continue
+                               }
                                tiledata := reftiledata[libref]
                                if len(tiledata) <= taglen {
                                        err = fmt.Errorf("bogus input data: ref tile libref %v has len %d < taglen %d", libref, len(tiledata), taglen)