Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions darts/tests/test_timeseries.py
Original file line number Diff line number Diff line change
Expand Up @@ -1904,6 +1904,21 @@ def test_index_creation(self):
ts8 = TimeSeries.from_values(values1)
assert ts8.has_range_index

def test_has_nan(self):
ts_nan = TimeSeries.from_values([1.0, np.nan, 3.0])
assert ts_nan.has_nan

ts_clean = TimeSeries.from_values([1.0, 2.0, 3.0])
assert not ts_clean.has_nan

ts_int = TimeSeries.from_values([1, 2, 3])
assert not ts_int.has_nan

ts_multivariate = TimeSeries.from_values(
np.array([[1.0, 2.0], [np.nan, 4.0]])
)
assert ts_multivariate.has_nan

def test_short_series_slice(self):
seriesA, seriesB = self.series1.split_after(pd.Timestamp("20130108"))
assert len(seriesA) == 8
Expand Down
5 changes: 5 additions & 0 deletions darts/timeseries.py
Original file line number Diff line number Diff line change
Expand Up @@ -1706,6 +1706,11 @@ def has_metadata(self) -> bool:
"""Whether the series contains metadata."""
return self.metadata is not None

@property
def has_nan(self) -> bool:
"""Whether the series contains any NaN values."""
return np.isnan(self._values).any()

@property
def duration(self) -> pd.Timedelta | int:
"""The duration of the series (as a ``pandas.Timedelta`` or `int`)."""
Expand Down