Code Duplication    Length = 98-99 lines in 4 locations

tests/Statistics/Extract/Intervals/DailyTest.php 1 location

@@ 7-104 (lines=98) @@
4
5
use Spiral\Statistics\Extract;
6
7
class DailyTest extends AbstractInterval
8
{
9
    const RANGE          = Extract\Range::DAILY;
10
    const RANGE_FIELD    = 'day_mark';
11
    const RANGE_INTERVAL = 'P1D';
12
    const RANGE_FORMAT   = 'M, d Y';
13
14
//    public function testDailyExtract()
15
//    {
16
//        $rangeValue = Extract\Range::DAILY;
17
//        /** @var Extract $extract */
18
//        $extract = $this->container->get(Extract::class);
19
//        /** @var Track $track */
20
//        $track = $this->container->get(Track::class);
21
//
22
//        $datetime = new \DateTime('today noon');
23
//        $datetime2 = new \DateTime('today noon + 2 hours');
24
//
25
//        $this->assertCount(0, $this->orm->source(Occurrence::class));
26
//        $this->assertCount(0, $this->orm->source(Event::class));
27
//
28
//        $track->events([
29
//            'event1' => 1,
30
//            'event2' => 2
31
//        ], $datetime);
32
//
33
//        $track->events([
34
//            'event1' => 3,
35
//            'event2' => 4
36
//        ], $datetime2);
37
//
38
//        $this->assertCount(2, $this->orm->source(Occurrence::class));
39
//        $this->assertCount(4, $this->orm->source(Event::class));
40
//
41
//        //test start same date
42
//        $start = new \DateTime('today');
43
//        $end = new \DateTime('today + 7 days');
44
//        $range = new Extract\Range($rangeValue);
45
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
46
//
47
//        $label = $start->format($range->getFormat());
48
//        $this->assertArrayHasKey($label, $results->results());
49
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
50
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
51
//        $this->assertEquals(4, $results->results()[$label]['event1']);
52
//        $this->assertEquals(6, $results->results()[$label]['event2']);
53
//
54
//        //test start end date
55
//        $start = new \DateTime('today - 7 days');
56
//        $end = new \DateTime('today');
57
//        $range = new Extract\Range($rangeValue);
58
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
59
//
60
//        $label = $end->format($range->getFormat());
61
//        $this->assertArrayHasKey($label, $results->results());
62
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
63
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
64
//        $this->assertEquals(4, $results->results()[$label]['event1']);
65
//        $this->assertEquals(6, $results->results()[$label]['event2']);
66
//
67
//        //test same start and end date
68
//        $start = $end = new \DateTime('today');
69
//        $range = new Extract\Range($rangeValue);
70
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
71
//
72
//        $label = $end->format($range->getFormat());
73
//        $this->assertArrayHasKey($label, $results->results());
74
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
75
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
76
//        $this->assertEquals(4, $results->results()[$label]['event1']);
77
//        $this->assertEquals(6, $results->results()[$label]['event2']);
78
//    }
79
80
    protected function start(): \DateTime
81
    {
82
        return new \DateTime('today noon - 2 days');
83
    }
84
85
    protected function end(): \DateTime
86
    {
87
        return new \DateTime('today noon + 2 days');
88
    }
89
90
    protected function datetime1(): \DateTime
91
    {
92
        return new \DateTime('today noon');
93
    }
94
95
    protected function datetime2(): \DateTime
96
    {
97
        return new \DateTime('today noon + 2 hours');
98
    }
99
100
    protected function datetime3(): \DateTime
101
    {
102
        return new \DateTime('today noon + 26 hours');
103
    }
104
}

tests/Statistics/Extract/Intervals/MonthlyTest.php 1 location

@@ 7-104 (lines=98) @@
4
5
use Spiral\Statistics\Extract;
6
7
class MonthlyTest extends AbstractInterval
8
{
9
    const RANGE          = Extract\Range::MONTHLY;
10
    const RANGE_FIELD    = 'month_mark';
11
    const RANGE_INTERVAL = 'P1M';
12
    const RANGE_FORMAT   = 'M, Y';
13
14
    protected function start(): \DateTime
15
    {
16
        return new \DateTime('today noon - 35 days');
17
    }
18
19
    protected function end(): \DateTime
20
    {
21
        return new \DateTime('today noon + 35 days');
22
    }
23
24
    protected function datetime1(): \DateTime
25
    {
26
        return new \DateTime('today noon');
27
    }
28
29
    protected function datetime2(): \DateTime
30
    {
31
        return new \DateTime('today noon + 2 hours');
32
    }
33
34
    protected function datetime3(): \DateTime
35
    {
36
        return new \DateTime('today noon + 33 days + 2 hours');
37
    }
38
39
//    public function testMonthly()
40
//    {
41
//        $rangeValue = Extract\Range::MONTHLY;
42
//        /** @var Extract $extract */
43
//        $extract = $this->container->get(Extract::class);
44
//        /** @var Track $track */
45
//        $track = $this->container->get(Track::class);
46
//
47
//        $datetime = new \DateTime('this Monday noon');
48
//        $datetime2 = (new \DateTime('this Monday noon'))->add(new \DateInterval('PT1H'));
49
//
50
//        $this->assertCount(0, $this->orm->source(Occurrence::class));
51
//        $this->assertCount(0, $this->orm->source(Event::class));
52
//
53
//        $track->events([
54
//            'event1' => 1,
55
//            'event2' => 2
56
//        ], $datetime);
57
//
58
//        $track->events([
59
//            'event1' => 3,
60
//            'event2' => 4
61
//        ], $datetime2);
62
//
63
//        $this->assertCount(2, $this->orm->source(Occurrence::class));
64
//        $this->assertCount(4, $this->orm->source(Event::class));
65
//
66
//        //test start same date
67
//        $start = new \DateTime('this Monday noon');
68
//        $end = (new \DateTime('this Monday noon'))->add(new \DateInterval('P4M'));
69
//        $range = new Extract\Range($rangeValue);
70
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
71
//
72
//        $label = $start->format($range->getFormat());
73
//        $this->assertArrayHasKey($label, $results->results());
74
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
75
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
76
//        $this->assertEquals(4, $results->results()[$label]['event1']);
77
//        $this->assertEquals(6, $results->results()[$label]['event2']);
78
//
79
//        //test start end date
80
//        $start = (new \DateTime('this Monday noon'))->sub(new \DateInterval('P4M'));
81
//        $end = new \DateTime('this Monday noon');
82
//        $range = new Extract\Range($rangeValue);
83
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
84
//
85
//        $label = $end->format($range->getFormat());
86
//        $this->assertArrayHasKey($label, $results->results());
87
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
88
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
89
//        $this->assertEquals(4, $results->results()[$label]['event1']);
90
//        $this->assertEquals(6, $results->results()[$label]['event2']);
91
//
92
//        //test same start and end date
93
//        $start = $end = new \DateTime('this Monday noon');
94
//        $range = new Extract\Range($rangeValue);
95
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
96
//
97
//        $label = $end->format($range->getFormat());
98
//        $this->assertArrayHasKey($label, $results->results());
99
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
100
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
101
//        $this->assertEquals(4, $results->results()[$label]['event1']);
102
//        $this->assertEquals(6, $results->results()[$label]['event2']);
103
//    }
104
}

tests/Statistics/Extract/Intervals/WeeklyTest.php 1 location

@@ 7-105 (lines=99) @@
4
5
use Spiral\Statistics\Extract;
6
7
class WeeklyTest extends AbstractInterval
8
{
9
    const RANGE          = Extract\Range::WEEKLY;
10
    const RANGE_FIELD    = 'week_mark';
11
    const RANGE_INTERVAL = 'P7D';
12
    const RANGE_FORMAT   = 'W, Y';
13
14
    protected function start(): \DateTime
15
    {
16
        return new \DateTime('today noon - 22 days');
17
    }
18
19
    protected function end(): \DateTime
20
    {
21
        return new \DateTime('today noon + 22 days');
22
    }
23
24
    protected function datetime1(): \DateTime
25
    {
26
        return new \DateTime('today noon');
27
    }
28
29
    protected function datetime2(): \DateTime
30
    {
31
        return new \DateTime('today noon + 2 hours');
32
    }
33
34
    protected function datetime3(): \DateTime
35
    {
36
        return new \DateTime('today noon + 8 days + 2 hours');
37
    }
38
39
40
//    public function testWeekly()
41
//    {
42
//        $rangeValue = Extract\Range::WEEKLY;
43
//        /** @var Extract $extract */
44
//        $extract = $this->container->get(Extract::class);
45
//        /** @var Track $track */
46
//        $track = $this->container->get(Track::class);
47
//
48
//        $datetime = new \DateTime('this Monday noon');
49
//        $datetime2 = (new \DateTime('this Monday noon'))->add(new \DateInterval('P1D'));
50
//
51
//        $this->assertCount(0, $this->orm->source(Occurrence::class));
52
//        $this->assertCount(0, $this->orm->source(Event::class));
53
//
54
//        $track->events([
55
//            'event1' => 1,
56
//            'event2' => 2
57
//        ], $datetime);
58
//
59
//        $track->events([
60
//            'event1' => 3,
61
//            'event2' => 4
62
//        ], $datetime2);
63
//
64
//        $this->assertCount(2, $this->orm->source(Occurrence::class));
65
//        $this->assertCount(4, $this->orm->source(Event::class));
66
//
67
//        //test start same date
68
//        $start = new \DateTime('this Monday noon');
69
//        $end = (new \DateTime('this Monday noon'))->add(new \DateInterval('P21D'));
70
//        $range = new Extract\Range($rangeValue);
71
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
72
//
73
//        $label = $start->format($range->getFormat());
74
//        $this->assertArrayHasKey($label, $results->results());
75
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
76
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
77
//        $this->assertEquals(4, $results->results()[$label]['event1']);
78
//        $this->assertEquals(6, $results->results()[$label]['event2']);
79
//
80
//        //test start end date
81
//        $start = (new \DateTime('this Monday noon'))->sub(new \DateInterval('P21D'));
82
//        $end = new \DateTime('this Monday noon');
83
//        $range = new Extract\Range($rangeValue);
84
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
85
//
86
//        $label = $end->format($range->getFormat());
87
//        $this->assertArrayHasKey($label, $results->results());
88
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
89
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
90
//        $this->assertEquals(4, $results->results()[$label]['event1']);
91
//        $this->assertEquals(6, $results->results()[$label]['event2']);
92
//
93
//        //test same start and end date
94
//        $start = $end = new \DateTime('this Monday noon');
95
//        $range = new Extract\Range($rangeValue);
96
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
97
//
98
//        $label = $end->format($range->getFormat());
99
//        $this->assertArrayHasKey($label, $results->results());
100
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
101
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
102
//        $this->assertEquals(4, $results->results()[$label]['event1']);
103
//        $this->assertEquals(6, $results->results()[$label]['event2']);
104
//    }
105
}

tests/Statistics/Extract/Intervals/YearlyTest.php 1 location

@@ 7-104 (lines=98) @@
4
5
use Spiral\Statistics\Extract;
6
7
class YearlyTest extends AbstractInterval
8
{
9
    const RANGE          = Extract\Range::YEARLY;
10
    const RANGE_FIELD    = 'year_mark';
11
    const RANGE_INTERVAL = 'P1Y';
12
    const RANGE_FORMAT   = 'Y';
13
14
    protected function start(): \DateTime
15
    {
16
        return new \DateTime('today noon - 370 days');
17
    }
18
19
    protected function end(): \DateTime
20
    {
21
        return new \DateTime('today noon + 370 days');
22
    }
23
24
    protected function datetime1(): \DateTime
25
    {
26
        return new \DateTime('today noon');
27
    }
28
29
    protected function datetime2(): \DateTime
30
    {
31
        return new \DateTime('today noon + 2 hours');
32
    }
33
34
    protected function datetime3(): \DateTime
35
    {
36
        return new \DateTime('today noon + 367 days + 2 hours');
37
    }
38
39
//    public function testYearly()
40
//    {
41
//        $rangeValue = Extract\Range::YEARLY;
42
//        /** @var Extract $extract */
43
//        $extract = $this->container->get(Extract::class);
44
//        /** @var Track $track */
45
//        $track = $this->container->get(Track::class);
46
//
47
//        $datetime = new \DateTime('this Monday of January');
48
//        $datetime2 = (new \DateTime('this Monday of January'))->add(new \DateInterval('P3M'));
49
//
50
//        $this->assertCount(0, $this->orm->source(Occurrence::class));
51
//        $this->assertCount(0, $this->orm->source(Event::class));
52
//
53
//        $track->events([
54
//            'event1' => 1,
55
//            'event2' => 2
56
//        ], $datetime);
57
//
58
//        $track->events([
59
//            'event1' => 3,
60
//            'event2' => 4
61
//        ], $datetime2);
62
//
63
//        $this->assertCount(2, $this->orm->source(Occurrence::class));
64
//        $this->assertCount(4, $this->orm->source(Event::class));
65
//
66
//        //test start same date
67
//        $start = new \DateTime('this Monday noon');
68
//        $end = (new \DateTime('this Monday noon'))->add(new \DateInterval('P2Y'));
69
//        $range = new Extract\Range($rangeValue);
70
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
71
//
72
//        $label = $start->format($range->getFormat());
73
//        $this->assertArrayHasKey($label, $results->results());
74
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
75
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
76
//        $this->assertEquals(4, $results->results()[$label]['event1']);
77
//        $this->assertEquals(6, $results->results()[$label]['event2']);
78
//
79
//        //test start end date
80
//        $start = (new \DateTime('this Monday noon'))->sub(new \DateInterval('P2Y'));
81
//        $end = new \DateTime('this Monday noon');
82
//        $range = new Extract\Range($rangeValue);
83
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
84
//
85
//        $label = $end->format($range->getFormat());
86
//        $this->assertArrayHasKey($label, $results->results());
87
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
88
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
89
//        $this->assertEquals(4, $results->results()[$label]['event1']);
90
//        $this->assertEquals(6, $results->results()[$label]['event2']);
91
//
92
//        //test same start and end date
93
//        $start = $end = new \DateTime('this Monday noon');
94
//        $range = new Extract\Range($rangeValue);
95
//        $results = $extract->events(clone $start, clone $end, $rangeValue, ['event1', 'event2']);
96
//
97
//        $label = $end->format($range->getFormat());
98
//        $this->assertArrayHasKey($label, $results->results());
99
//        $this->assertArrayHasKey('event1', $results->results()[$label]);
100
//        $this->assertArrayHasKey('event2', $results->results()[$label]);
101
//        $this->assertEquals(4, $results->results()[$label]['event1']);
102
//        $this->assertEquals(6, $results->results()[$label]['event2']);
103
//    }
104
}