public void TestSource()
        {
            AtemMockServerWrapper.Each(_output, _pool, SourceCommandHandler, DeviceTestCases.All, helper =>
            {
                Dictionary <VideoSource, IBMDSwitcherInputAux> allAuxes = helper.GetSdkInputsOfType <IBMDSwitcherInputAux>();
                VideoSource[] chosenIds = VideoSourceUtil.TakeSelection(allAuxes.Keys.ToArray());

                foreach (VideoSource auxSource in chosenIds)
                {
                    uint auxId = AtemEnumMaps.GetAuxId(auxSource);
                    IBMDSwitcherInputAux aux = allAuxes[auxSource];

                    // GetInputAvailabilityMask is used when checking if another input can be used for this output.
                    // We track this another way
                    aux.GetInputAvailabilityMask(out _BMDSwitcherInputAvailability availabilityMask);
                    Assert.Equal(availabilityMask, (_BMDSwitcherInputAvailability)((int)SourceAvailability.Auxiliary << 2));

                    AtemState stateBefore = helper.Helper.BuildLibState();

                    VideoSource[] validSources = stateBefore.Settings.Inputs.Where(
                        i => i.Value.Properties.SourceAvailability.HasFlag(SourceAvailability.Auxiliary)
                        ).Select(i => i.Key).ToArray();
                    var sampleSources = VideoSourceUtil.TakeSelection(validSources);

                    foreach (VideoSource src in sampleSources)
                    {
                        stateBefore.Auxiliaries[(int)auxId].Source = src;
                        helper.SendAndWaitForChange(stateBefore, () =>
                        {
                            aux.SetInputSource((long)src);
                        });
                    }
                }
            });
        }
        private void EachColor(AtemMockServerWrapper helper, Action <AtemState, ColorState, IBMDSwitcherInputColor, ColorGeneratorId, int> fcn, int iterations = 5)
        {
            foreach (KeyValuePair <VideoSource, IBMDSwitcherInputColor> c in helper.GetSdkInputsOfType <IBMDSwitcherInputColor>())
            {
                ColorGeneratorId id          = AtemEnumMaps.GetSourceIdForGen(c.Key);
                AtemState        stateBefore = helper.Helper.BuildLibState();
                ColorState       colBefore   = stateBefore.ColorGenerators[(int)id];

                for (int i = 0; i < iterations; i++)
                {
                    fcn(stateBefore, colBefore, c.Value, id, i);
                }
            }
        }