コード例 #1
0
        public void FieldOfViewWithVaryingOrientationTest()
        {
            Room r = new Room();

            List<Device> devices = new List<Device>();

            devices.Add((new Device("zero", new Point(5, 0), 0.0, 15.0)));
            devices.Add((new Device("one", new Point(10, 0), 0.0, 15.0)));
            devices.Add((new Device("two", new Point(15, 0), 0.0, 15.0)));
            devices.Add((new Device("three", new Point(10, 5), 0.0, 15.0)));
            devices.Add((new Device("four", new Point(10, -5), 0.0, 15.0)));

            foreach (Device d in devices)
                r.AddDevice(d);

            List<Device> results = r.GetDevicesInViewOf(r.GetDevice("zero"));
            Assert.AreEqual(results[0], devices[1]);
            Assert.AreEqual(results[1], devices[2]);
            Assert.AreEqual(results.Count, 2);

            results = r.GetDevicesInViewOf(r.GetDevice("one"));
            Assert.AreEqual(results[0],  devices[2]);
            Assert.AreEqual(results.Count, 1);

            results = r.GetDevicesInViewOf(r.GetDevice("two"));
            Assert.AreEqual(results.Count, 0);
            results = r.GetDevicesInViewOf(r.GetDevice("three"));
            Assert.AreEqual(results.Count, 0);
            results = r.GetDevicesInViewOf(r.GetDevice("four"));
            Assert.AreEqual(results.Count, 0);

            foreach (Device d in devices)
            {
                d.Orientation = 90.0;
            }

            results = r.GetDevicesInViewOf(r.GetDevice("one"));
            Assert.AreEqual(results[0], devices[3]);
            Assert.AreEqual(results.Count, 1);

            results = r.GetDevicesInViewOf(r.GetDevice("four"));
            Assert.AreEqual(results[0], devices[1]);
            Assert.AreEqual(results[1], devices[3]);
            Assert.AreEqual(results.Count, 2);

            results = r.GetDevicesInViewOf(r.GetDevice("zero"));
            Assert.AreEqual(results.Count, 0);
            results = r.GetDevicesInViewOf(r.GetDevice("two"));
            Assert.AreEqual(results.Count, 0);
            results = r.GetDevicesInViewOf(r.GetDevice("three"));
            Assert.AreEqual(results.Count, 0);

            foreach (Device d in devices)
            {
                d.Orientation = 115.0;
            }

            foreach (Device d in devices)
            {
                results = r.GetDevicesInViewOf(d);
                Assert.AreEqual(results.Count, 0);
            }
        }
コード例 #2
0
        public void VaryingFieldOfViewTest()
        {
            Room r = new Room();

            List<Device> devices = new List<Device>();

            devices.Add((new Device("zero", new Point(5, 0), 0.0, 190.0)));
            devices.Add((new Device("one", new Point(10, 0), 0.0, 190.0)));
            devices.Add((new Device("two", new Point(15, 0), 0.0, 190.0)));
            devices.Add((new Device("three", new Point(10, 5), 0.0, 190.0)));
            devices.Add((new Device("four", new Point(10, -5), 0.0, 190.0)));

            foreach (Device d in devices)
                r.AddDevice(d);

            List<Device> results = r.GetDevicesInViewOf(r.GetDevice("zero"));
            Assert.AreEqual(results.Count, 4);
            results = r.GetDevicesInViewOf(r.GetDevice("one"));
            Assert.AreEqual(results.Count, 3);
            results = r.GetDevicesInViewOf(r.GetDevice("two"));
            Assert.AreEqual(results.Count, 0);
            results = r.GetDevicesInViewOf(r.GetDevice("three"));
            Assert.AreEqual(results.Count, 3);
            results = r.GetDevicesInViewOf(r.GetDevice("four"));
            Assert.AreEqual(results.Count, 3);
        }