using System.Collections.Generic;
public DateTime Time { get; private set; }
public Element Value { get; private set; }
public Observation(DateTime time, Element element)
private static IEnumerable<IEnumerable<Observation>> sequences;
public static void OneTimeSetUp()
var measureStartPoint = new DateTime(2017, 8, 30, 8, 40, 0);
var m1s = measureStartPoint.AddSeconds(1);
var m2s = measureStartPoint.AddSeconds(2);
var m3s = measureStartPoint.AddSeconds(3);
var m4s = measureStartPoint.AddSeconds(4);
var m5s = measureStartPoint.AddSeconds(5);
new Observation[] { new Observation(measureStartPoint, Element.Atlanta), new Observation(m1s, Element.Banana), new Observation(m3s, Element.Banana), new Observation(m4s, Element.Atlanta) },
new Observation[] { new Observation(measureStartPoint, Element.Elephant), new Observation(m4s, Element.Domino), new Observation(m5s, Element.Elephant) },
new Observation[] { new Observation(m1s, Element.Elephant), new Observation(m2s, Element.Elephant), new Observation(m3s, Element.Domino) },
new Observation[] { new Observation(m4s, Element.Lovecraft) },
new Observation[] { new Observation(measureStartPoint, Element.Atlanta), new Observation(m1s, Element.Cheese) },
new Observation[] { new Observation(measureStartPoint, Element.Banana), new Observation(m2s, Element.Banana) },
new Observation[] { new Observation(measureStartPoint, Element.Freedom), new Observation(m2s, Element.Freedom), new Observation(m4s, Element.Freedom) },
new Observation[] { new Observation(m1s, Element.Government), new Observation(m4s, Element.Atlanta), new Observation(m5s, Element.Hurricane) },
new Observation[] { new Observation(measureStartPoint, Element.Cheese), new Observation(m1s, Element.Banana), new Observation(m2s, Element.Lovecraft), new Observation(m3s, Element.Banana), new Observation(m4s, Element.Freedom)},
new Observation[] { new Observation(m3s, Element.Banana) },
new Observation[] { new Observation(m1s, Element.Banana) },
new Observation[] { new Observation(m1s, Element.Domino), new Observation(m3s, Element.Domino), new Observation(m3s, Element.Freedom) },
new Observation[] { new Observation(measureStartPoint, Element.Hurricane), new Observation(m5s, Element.Elephant) },
new Observation[] { new Observation(m1s, Element.Atlanta) },
new Observation[] { new Observation(measureStartPoint, Element.Lovecraft), new Observation(m2s, Element.Atlanta) },
new Observation[] { new Observation(measureStartPoint, Element.Lovecraft), new Observation(m2s, Element.Atlanta), new Observation(m3s, Element.Cheese) },
new Observation[] { new Observation(measureStartPoint, Element.Lovecraft), new Observation(m1s, Element.Atlanta), new Observation(m4s, Element.Cheese) },
new Observation[] { new Observation(m2s, Element.Banana), new Observation(m4s, Element.Banana) },
new Observation[] { new Observation(m1s, Element.Atlanta), new Observation(m2s, Element.Cheese)}
public static void Main()
TestExampleFirstSequenceLength();
TestLongestSequenceLength();
TestAtlantaObservations();
TestMostFrequentLenghtOfSequence();
public static void TestExampleFirstSequenceLength()
var result = sequences.First().Count();
Console.WriteLine("TestExampleFirstSequenceLength pass");
Console.WriteLine("TestExampleFirstSequenceLength fail");
public static void TestLongestSequenceLength()
var result = default(int);
Console.WriteLine("TestLeastSequenceLength pass");
Console.WriteLine("TestLeastSequenceLength fail");
public static void TestAtlantaObservations()
var result = default(int);
Console.WriteLine("TestSequenceObservations pass");
Console.WriteLine("TestSequenceObservations fail");
public static void TestMostFrequentLenghtOfSequence()
var result = default(int);
Console.WriteLine("TestMostFrequentLenghtOfSequence pass");
Console.WriteLine("TestMostFrequentLenghtOfSequence fail");