+# isSameSeason
+#
+# Check if two months fall in the same "season" (defined by estimated pollution rate)
+#
+# @param month month index to test
+# @param month_ref month to compare to
+#
+.isSameSeason = function(month, month_ref)
+{
+ if (month_ref %in% c(11,12,1,2)) #~= mid-polluted
+ return (month %in% c(11,12,1,2))
+ if (month_ref %in% c(3,4,9,10)) #~= high-polluted
+ return (month %in% c(3,4,9,10))
+ return (month %in% c(5,6,7,8)) #~= non polluted
+}
+
+# isSameDay
+#
+# Monday=Tuesday=Wednesday=Thursday ; Friday, Saturday, Sunday: specials
+#
+# @param day day index to test
+# @param day_ref day index to compare to
+#
+.isSameDay = function(day, day_ref)
+{
+ if (day_ref == 0)
+ return (day==0)
+ if (day_ref <= 4)
+ return (day <= 4)
+ return (day == day_ref)
+}
+
+#' getNoNA2
+#'
+#' Get indices in data of no-NA series followed by no-NA, within [first,last] range.
+#'
+#' @param data Object of class Data
+#' @param first First index (included)
+#' @param last Last index (included)
+#'
+#' @export
+getNoNA2 = function(data, first, last)
+{
+ (first:last)[ sapply(first:last, function(i)
+ !any( is.na(data$getCenteredSerie(i)) | is.na(data$getCenteredSerie(i+1)) )
+ ) ]