package main import ( "fmt" "testing" ) func TestFullyIncludes(t *testing.T) { cases := []struct { LeftTime string RightTime string Want bool Description string }{ { LeftTime: "06:12.240", RightTime: "06:16.040", Want: true, Description: "right time is bigger", }, { LeftTime: "06:18.240", RightTime: "06:16.040", Want: false, Description: "left time is bigger: inadequate", }, { LeftTime: "06:18.240", RightTime: "06:18.240", Want: false, Description: "left == right: inadequate", }, { LeftTime: "01:00:08.000", RightTime: "59:37.800", Want: false, Description: "with hours: left time is bigger: inadequate", }, { LeftTime: "59:37.800", RightTime: "01:00:08.000", Want: true, Description: "with hours: right time is bigger", }, { LeftTime: "01:00:04.900", RightTime: "01:02:08.000", Want: true, Description: "with hours: right time is bigger", }, { LeftTime: "01:02:08.000", RightTime: "01:00:04.900", Want: false, Description: "with hours: left time is bigger", }, } for i, tc := range cases { t.Run(fmt.Sprintf("run: #%d; %q", i, tc.Description), func(t *testing.T) { got := adequateTimes(tc.LeftTime, tc.RightTime) if got != tc.Want { t.Errorf("want: %v; got: %v", tc.Want, got) } }) } }