@@ -123,6 +123,23 @@ impl<A: Ord> Edges<A> {
123
123
self . edges . len ( )
124
124
}
125
125
126
+ /// Returns `true` if `self` contains no edges.
127
+ ///
128
+ /// # Example:
129
+ ///
130
+ /// ```
131
+ /// use ndarray_stats::histogram::Edges;
132
+ /// use noisy_float::types::{N64, n64};
133
+ ///
134
+ /// let edges = Edges::<N64>::from(vec![]);
135
+ /// assert_eq!(edges.is_empty(), true);
136
+ /// let edges = Edges::from(vec![n64(0.), n64(2.), n64(5.)]);
137
+ /// assert_eq!(edges.is_empty(), false);
138
+ /// ```
139
+ pub fn is_empty ( & self ) -> bool {
140
+ self . edges . is_empty ( )
141
+ }
142
+
126
143
/// Borrow an immutable reference to the edges as a 1-dimensional
127
144
/// array view.
128
145
///
@@ -240,6 +257,29 @@ impl<A: Ord> Bins<A> {
240
257
}
241
258
}
242
259
260
+ /// Returns `true` if the number of bins is zero, or in other words, if the
261
+ /// number of edges is 0 or 1.
262
+ ///
263
+ /// # Example:
264
+ ///
265
+ /// ```
266
+ /// use ndarray_stats::histogram::{Edges, Bins};
267
+ /// use noisy_float::types::{N64, n64};
268
+ ///
269
+ /// let edges = Edges::<N64>::from(vec![]);
270
+ /// let bins = Bins::new(edges);
271
+ /// assert_eq!(bins.is_empty(), true);
272
+ /// let edges = Edges::from(vec![n64(0.)]);
273
+ /// let bins = Bins::new(edges);
274
+ /// assert_eq!(bins.is_empty(), true);
275
+ /// let edges = Edges::from(vec![n64(0.), n64(1.), n64(3.)]);
276
+ /// let bins = Bins::new(edges);
277
+ /// assert_eq!(bins.is_empty(), false);
278
+ /// ```
279
+ pub fn is_empty ( & self ) -> bool {
280
+ self . len ( ) == 0
281
+ }
282
+
243
283
/// Given `value`, it returns:
244
284
/// - `Some(i)`, if the `i`-th bin in `self` contains `value`;
245
285
/// - `None`, if `value` does not belong to any of the bins in `self`.
0 commit comments