]> git.lizzy.rs Git - go-anidb.git/blob - misc/episoderange_test.go
misc: Support partial episodes
[go-anidb.git] / misc / episoderange_test.go
1 package misc_test
2
3 import (
4         "fmt"
5         "github.com/Kovensky/go-anidb/misc"
6 )
7
8 func ExampleEpisodeRange_Merge() {
9         a := misc.ParseEpisodeRange("5-7")
10         b := misc.ParseEpisodeRange("8-12")
11         fmt.Println(a.Merge(b)) // 5-7 + 8-12
12
13         b = misc.ParseEpisodeRange("3-6")
14         fmt.Println(a.Merge(b)) // 5-7 + 3-6
15
16         b = misc.ParseEpisodeRange("10-12")
17         fmt.Println(a.Merge(b)) // 5-7 + 10-12 (invalid, not touching)
18
19         b = misc.ParseEpisodeRange("S1-S3")
20         fmt.Println(a.Merge(b)) // 5-7 + S1-S3 (invalid, different types)
21
22         a = misc.ParseEpisodeRange("S3-S10")
23         fmt.Println(a.Merge(b)) // S3-S10 + S1-S3
24
25         // Output:
26         // 05-12
27         // 3-7
28         // <nil>
29         // <nil>
30         // S01-S10
31 }
32
33 func ExampleEpisodeRange_PartialMerge() {
34         a := misc.ParseEpisodeRange("2.1-2.3")
35         b := misc.ParseEpisodeRange("3.0")
36         fmt.Println(a.Merge(b)) // 2.1-2.3 + 3.0
37
38         b = misc.ParseEpisodeRange("3.1")
39         fmt.Println(a.Merge(b)) // 2.1-2.3 + 3.1
40
41         b = misc.ParseEpisodeRange("1")
42         fmt.Println(a.Merge(b)) // 2.1-2.3 + 1
43
44         a = misc.ParseEpisodeRange("2.0-2.3")
45         fmt.Println(a.Merge(b)) // 2.0-2.3 + 1
46
47         // Output:
48         // 2.1-3.0
49         // <nil>
50         // <nil>
51         // 1-2.3
52 }