public <T> IfrVfrStatus statusOf(Track<T> track, Instant time) {
        checkNotNull(track);
        checkNotNull(time);
        checkArgument(
            track.asTimeWindow().contains(time),
            "This track does not exist at this moment in time"
        );

        EnumMultiset<IfrVfrStatus> counts = EnumMultiset.create(IfrVfrStatus.class);
        Collection<Point<T>> localPoints = track.kNearestPoints(time, numPointsToConsider);

        for (Point<T> point : localPoints) {
            counts.add(statusOf(point));
        }
        return (counts.count(IFR) > counts.count(VFR)) ? IFR : VFR;
    }
@Test
    public void testStatusOfPoint_noFlightRules() {
        String rawNop = "[RH],AGW,BTR,10/18/2016,00:26:51.911,,,,1016,056,176,202,030.34024,-091.71407,212,,-29.21,-13.05,,,,BTR,,,,,???,,,,,6682,???,,00,,,1,,0,,53.42,68.77,{RH}";

        Point<NopHit> point = NopHit.from(rawNop);

        assertFalse(point.rawData().hasFlightRules());
        assertFalse(point.hasValidCallsign());

        IfrVfrAssigner assigner = new IfrVfrAssigner();

        assertEquals(
            VFR, assigner.statusOf(point),
            "No flight rules, no callsign = VFR"
        );
    }