public void compare_angles()
        {
            LocationComparerByAngle comp = new LocationComparerByAngle();
              comp.compare_with = new Location(0, 0);

              Location quadrant1 = new Location(5, 5);
              Location quadrant2 = new Location(-5, 5);
              Location quadrant3 = new Location(-5, -5);
              Location quadrant4 = new Location(5, -5);

              Specify.That(comp.Compare(quadrant1, quadrant2)).ShouldEqual(-1);
              Specify.That(comp.Compare(quadrant1, quadrant4)).ShouldEqual(-1);
              Specify.That(comp.Compare(quadrant2, quadrant2)).ShouldEqual(0);
              Specify.That(comp.Compare(quadrant4, quadrant3)).ShouldEqual(1);
              Specify.That(comp.Compare(quadrant4, quadrant1)).ShouldEqual(1);

              comp.compare_clockwise = true;

              Specify.That(comp.Compare(quadrant1, quadrant2)).ShouldEqual(1);
              Specify.That(comp.Compare(quadrant1, quadrant4)).ShouldEqual(1);
              Specify.That(comp.Compare(quadrant2, quadrant2)).ShouldEqual(0);
              Specify.That(comp.Compare(quadrant4, quadrant3)).ShouldEqual(-1);
              Specify.That(comp.Compare(quadrant4, quadrant1)).ShouldEqual(-1);
        }
        public void location_list_sort_works_properly()
        {
            List<Location> l = new List<Location>();
              for (int i = 0; i < 10; ++i)
            l.Add(new Location(4 - i, 10));

              LocationComparerByAngle comparer = new LocationComparerByAngle();
              comparer.compare_clockwise = true;
              comparer.compare_with = new Location(0,0);
              l.Sort(comparer);

              for (int i = 0; i < 10; ++i)
            Specify.That(l[i].x).ShouldEqual(-5 + i);
        }
        public void setting_compare_with_in_LocationComparerByAngle()
        {
            Location loc = new Location(0, 0);

              LocationComparerByAngle lcba = new LocationComparerByAngle();
              lcba.compare_with = loc;

              Specify.That(lcba.compare_with.Equals(loc)).ShouldBeTrue();
        }
        public void setting_compare_clockwise_in_LocationComparerByAngle()
        {
            LocationComparerByAngle lcba = new LocationComparerByAngle();

              lcba.compare_clockwise = true;
              Specify.That(lcba.compare_clockwise).ShouldBeTrue();

              lcba.compare_clockwise = false;
              Specify.That(lcba.compare_clockwise).ShouldBeFalse();
        }