]> git.lizzy.rs Git - go-anidb.git/blob - misc/episoderange_test.go
Modernize
[go-anidb.git] / misc / episoderange_test.go
1 package misc_test
2
3 import (
4         "fmt"
5         "github.com/EliasFleckenstein03/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         // <nil>
49         // <nil>
50         // <nil>
51         // 1-2.3
52 }
53
54 func ExampleEpisodeRange_Split() {
55         a := misc.ParseEpisodeRange("1.0-1.3")
56         b := misc.ParseEpisode("1.2")
57         fmt.Println(a.Split(b))
58
59         b = misc.ParseEpisode("1")
60         fmt.Println(a.Split(b))
61
62         a = misc.ParseEpisodeRange("1.1-2")
63         fmt.Println(a.Split(b))
64
65         b = misc.ParseEpisode("2")
66         fmt.Println(a.Split(b))
67
68         a = misc.ParseEpisodeRange("1-10")
69         fmt.Println(a.Split(b))
70
71         b = misc.ParseEpisode("4")
72         fmt.Println(a.Split(b))
73
74         // Output:
75         // [1.0-1.1 1.3]
76         // [<nil> <nil>]
77         // [<nil> 2]
78         // [1.1 <nil>]
79         // [1 03-10]
80         // [1-3 05-10]
81 }
82
83 func ExampleEpisodeRange_Episodes() {
84         a := misc.ParseEpisodeRange("C1-C3.2")
85         for ep := range a.Episodes() {
86                 fmt.Println(ep)
87         }
88
89         // Output:
90         // C1
91         // C2
92         // C3.0
93         // C3.1
94         // C3.2
95 }