-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathstatistics_default_options.go
More file actions
94 lines (90 loc) · 2.44 KB
/
statistics_default_options.go
File metadata and controls
94 lines (90 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package genetic_algorithm
// Options for default statistics
type StatisticsDefaultOptions struct {
trackMinCosts bool
trackGensWoImprv bool
trackMeanCost bool
trackMeanCosts bool
trackWorstCost bool
trackWorstCosts bool
trackMinCostsVar bool
trackDurations bool
}
func NewStatisticsDefaultOptions() *StatisticsDefaultOptions {
return new(StatisticsDefaultOptions)
}
func (options *StatisticsDefaultOptions) TrackMinCosts() *StatisticsDefaultOptions {
options.trackMinCosts = true
return options
}
func (options *StatisticsDefaultOptions) TrackGenerationsWithoutImprovements() *StatisticsDefaultOptions {
options.trackGensWoImprv = true
return options
}
func (options *StatisticsDefaultOptions) TrackMeanCost() *StatisticsDefaultOptions {
options.trackMeanCost = true
return options
}
func (options *StatisticsDefaultOptions) TrackMeanCosts() *StatisticsDefaultOptions {
options.trackMeanCosts = true
return options
}
func (options *StatisticsDefaultOptions) TrackWorstCost() *StatisticsDefaultOptions {
options.trackWorstCost = true
return options
}
func (options *StatisticsDefaultOptions) TrackWorstCosts() *StatisticsDefaultOptions {
options.trackWorstCosts = true
return options
}
func (options *StatisticsDefaultOptions) TrackMinCostsVar() *StatisticsDefaultOptions {
options.TrackMinCosts()
options.trackMinCostsVar = true
return options
}
func (options *StatisticsDefaultOptions) TrackDurations() *StatisticsDefaultOptions {
options.trackDurations = true
return options
}
func (options *StatisticsDefaultOptions) Ensure(other StatisticsOptionsInterface) {
opt, ok := other.(*StatisticsDefaultOptions)
if !ok {
panic("Expect *StatisticsDefaultOptions")
}
if options.trackMinCosts {
opt.TrackMinCosts()
}
if options.trackGensWoImprv {
opt.TrackGenerationsWithoutImprovements()
}
if options.trackMeanCost {
opt.TrackMeanCost()
}
if options.trackMeanCosts {
opt.TrackMeanCosts()
}
if options.trackWorstCost {
opt.TrackWorstCost()
}
if options.trackWorstCosts {
opt.TrackWorstCosts()
}
if options.trackMinCostsVar {
opt.TrackMinCostsVar()
}
if options.trackDurations {
opt.TrackDurations()
}
}
func (options *StatisticsDefaultOptions) Copy() *StatisticsDefaultOptions {
return &StatisticsDefaultOptions{
options.trackMinCosts,
options.trackGensWoImprv,
options.trackMeanCost,
options.trackMeanCosts,
options.trackWorstCost,
options.trackWorstCosts,
options.trackMinCostsVar,
options.trackDurations,
}
}