public void AddHarmonics()
        {
            var roi            = new Series();
            var firstHarmonic  = roi.AddHarmonic(1, 0, 1);
            var secondHarmonic = roi.AddHarmonic(1, 0, 2);

            Assert.Contains(firstHarmonic, roi.Harmonics);
            Assert.Contains(secondHarmonic, roi.Harmonics);
        }
        public void ChainHarmonics()
        {
            var roi           = new Series();
            var firstHarmonic = roi.AddHarmonic(1, 0, 1);

            roi.AddHarmonic(1, 0, 1);
            roi.AddHarmonic(1, 0, 1);
            Assert.NotSame(firstHarmonic.SubHarmonic.ParentHarmonic, firstHarmonic.SubHarmonic.SubHarmonic);
            Assert.Null(firstHarmonic.ParentHarmonic);
            Assert.Equal(firstHarmonic.SubHarmonic.Origin, firstHarmonic.End);
            Assert.Equal(firstHarmonic.SubHarmonic.SubHarmonic.Origin, firstHarmonic.SubHarmonic.End);
            Assert.Equal(new Point(0, 3), firstHarmonic.SubHarmonic.SubHarmonic.End);
        }
        public void TickTock()
        {
            var roi  = new Series();
            var last = roi.AddHarmonic(1, 0, 90);

            roi.Tick();
            Assert.Equal(1, last.End.X, 1);
            Assert.Equal(0, last.End.Y, 1);
        }
 public static Series NewHarmonic(this Series series, double amplify, double phase, double freq)
 {
     series.AddHarmonic(amplify, phase, freq);
     return(series);
 }