Skip to content

Commit

Permalink
Fixed distance backward in time period
Browse files Browse the repository at this point in the history
  • Loading branch information
norberttech committed May 28, 2020
1 parent 8f8e258 commit 6f40f9a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
5 changes: 2 additions & 3 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 4 additions & 2 deletions src/Aeon/Calendar/Gregorian/TimePeriod.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,10 @@ public function distance() : TimeUnit

public function distanceBackward() : TimeUnit
{
return TimeUnit::seconds(
$this->start->secondsSinceUnixEpoch() - $this->end->secondsSinceUnixEpoch()
return TimeUnit::precise(
(float) \sprintf("%d.%s", $this->start->secondsSinceUnixEpoch(), \str_pad((string) $this->start->time()->microsecond(), 6, "0", STR_PAD_LEFT))
-
(float) \sprintf("%d.%s", $this->end->secondsSinceUnixEpoch(), \str_pad((string) $this->end->time()->microsecond(), 6, "0", STR_PAD_LEFT))
);
}

Expand Down
12 changes: 11 additions & 1 deletion tests/Aeon/Calendar/Tests/Unit/Gregorian/TimePeriodTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public function test_distance_in_time_unit_from_start_to_end_date() : void
$this->assertFalse($period->distance()->isNegative());
}

public function test_precide_distance_in_time_unit_from_start_to_end() : void
public function test_precise_distance_in_time_unit_from_start_to_end() : void
{
$period = new TimePeriod(
DateTime::fromString('2020-01-01 12:25:30.079635'),
Expand All @@ -33,6 +33,16 @@ public function test_precide_distance_in_time_unit_from_start_to_end() : void
$this->assertSame("2.508825", $period->distance()->inSecondsPreciseString());
}

public function test_precise_distance_in_time_unit_from_start_to_end_backward() : void
{
$period = new TimePeriod(
DateTime::fromString('2020-01-01 12:25:30.079635'),
DateTime::fromString('2020-01-01 12:25:32.588460')
);

$this->assertSame("-2.508825", $period->distanceBackward()->inSecondsPreciseString());
}

public function test_distance_in_time_unit_from_start_to_end_date_between_years() : void
{
$period = new TimePeriod(
Expand Down

0 comments on commit 6f40f9a

Please sign in to comment.