using System.Collections.Generic;
public static void Main()
var alternating = new double[]{12,10,11,9,23,17};
var shouldBeTrue = IsAlternating(alternating);
Console.WriteLine(shouldBeTrue);
var notAlternating = new double[]{13,12,10,11,9,23,17};
var shouldBeFalse = IsAlternating(notAlternating);
Console.WriteLine(shouldBeFalse);
public static bool IsAlternating(double[] data)
var d = GetDerivative(data);
var signs = d.Select(val => Math.Sign(val));
signs.Zip(signs.Skip(1), (a, b) => a != b).All(isAlt => isAlt);
private static IEnumerable<double> GetDerivative(double[] data)
var d = data.Zip(data.Skip(1), (a, b) => b - a);