#![allow(missing_docs, clippy::tests_outside_test_module, clippy::unwrap_used)]
use zoomvtools::{
Analyse, AnalyseOptions, AnalyseResult, BlockFPS, BlockFPSOptions, ColorFamily, Compensate,
CompensateOptions, DctMode, Degrain, DegrainOptions, DivideMode, FakeBlockData,
FakeGroupOfPlanes, Finest, Flow, FlowBlur, FlowBlurOptions, FlowFPS, FlowFPSOptions, FlowInter,
FlowInterExtraVectors, FlowInterOptions, FlowMode, FlowOptions, Frame, FramePlane, FramePlanes,
FramePlanesMut, FrameView, MAX_RADIUS, MAX_REFS_SIZE, MV_DEFAULT_SCD1, MV_DEFAULT_SCD2,
MVAnalysisData, MVPlaneSet, Mask, MaskKind, MaskOptions, MotionFlags, MotionVector, MvsOutput,
PROP_MVANALYSISDATA, PROP_VECTORS, PenaltyScaling, Pixel, PlaneRef, PlaneSelection,
PlaneSizeTuple, Recalculate, RecalculateOptions, RecalculateResult, ReduceFilter, Resolution,
SCDetection, SampleType, SceneChangeBehavior, SearchType, Subpel, SubpelMethod, Super,
SuperClipInfo, SuperOptions, SuperPelClip, VideoFormat, VideoInfo,
};
const fn assert_pixel<T: Pixel>() {}
#[test]
fn filter_api_is_available_from_crate_root() {
assert_pixel::<u8>();
assert_pixel::<u16>();
let _: AnalyseOptions = Default::default();
let _: RecalculateOptions = Default::default();
let _: MaskOptions = Default::default();
let _ = std::mem::size_of::<Analyse>();
let _ = std::mem::size_of::<AnalyseResult>();
let _ = std::mem::size_of::<BlockFPS>();
let _ = std::mem::size_of::<BlockFPSOptions>();
let _ = std::mem::size_of::<Compensate>();
let _ = std::mem::size_of::<CompensateOptions>();
let _ = std::mem::size_of::<Degrain<1>>();
let _ = std::mem::size_of::<DegrainOptions>();
let _ = std::mem::size_of::<Finest>();
let _ = std::mem::size_of::<Flow>();
let _ = std::mem::size_of::<FlowBlur>();
let _ = std::mem::size_of::<FlowBlurOptions>();
let _ = std::mem::size_of::<FlowFPS>();
let _ = std::mem::size_of::<FlowFPSOptions>();
let _ = std::mem::size_of::<FlowInter>();
let _ = std::mem::size_of::<FlowInterExtraVectors<'static>>();
let _ = std::mem::size_of::<FlowInterOptions>();
let _ = std::mem::size_of::<FlowMode>();
let _ = std::mem::size_of::<FlowOptions>();
let _ = std::mem::size_of::<Frame<u8>>();
let _ = std::mem::size_of::<FramePlane<u8>>();
let _ = std::mem::size_of::<FramePlanes<'static, u8>>();
let _ = std::mem::size_of::<FramePlanesMut<'static, u8>>();
let _ = std::mem::size_of::<FrameView<'static, u8>>();
let _ = std::mem::size_of::<Mask>();
let _ = std::mem::size_of::<MVAnalysisData>();
let _ = std::mem::size_of::<MvsOutput>();
let _ = std::mem::size_of::<Recalculate>();
let _ = std::mem::size_of::<RecalculateResult>();
let _ = std::mem::size_of::<SCDetection>();
let _ = std::mem::size_of::<Super>();
let _ = std::mem::size_of::<SuperClipInfo>();
let _ = std::mem::size_of::<SuperOptions>();
let _ = std::mem::size_of::<SuperPelClip<'static, u8>>();
let _: PlaneSizeTuple = (std::num::NonZeroUsize::new(1).unwrap(), None, None);
let _: Option<FakeBlockData> = None;
let _: Option<FakeGroupOfPlanes> = None;
let _: Option<MotionVector> = None;
let _: Option<PlaneRef<'static, u8>> = None;
assert_eq!(PROP_MVANALYSISDATA, "MVTools_MVAnalysisData");
assert_eq!(PROP_VECTORS, "MVTools_vectors");
assert_eq!(MV_DEFAULT_SCD1, 400);
assert_eq!(MV_DEFAULT_SCD2, 130);
assert_eq!(MAX_REFS_SIZE, MAX_RADIUS * 2);
let _ = ColorFamily::Gray;
let _ = DivideMode::None;
let _ = DctMode::Spatial;
let _ = MaskKind::VectorLength;
let _ = MotionFlags::empty();
let _ = MVPlaneSet::YPLANE;
let _ = PenaltyScaling::None;
let _ = PlaneSelection::Luma;
let _ = ReduceFilter::Average;
let _ = SampleType::Integer;
let _ = SceneChangeBehavior::CurrentFrame;
let _ = SearchType::Hex2;
let _ = Subpel::Full;
let _ = SubpelMethod::Bilinear;
let _ = Resolution {
width: 1,
height: 1,
};
let _ = VideoFormat {
color_family: ColorFamily::Gray,
sample_type: SampleType::Integer,
bits_per_sample: std::num::NonZeroU8::new(8).unwrap(),
bytes_per_sample: std::num::NonZeroU8::new(1).unwrap(),
sub_sampling_w: 0,
sub_sampling_h: 0,
};
let _ = VideoInfo {
format: VideoFormat {
color_family: ColorFamily::Gray,
sample_type: SampleType::Integer,
bits_per_sample: std::num::NonZeroU8::new(8).unwrap(),
bytes_per_sample: std::num::NonZeroU8::new(1).unwrap(),
sub_sampling_w: 0,
sub_sampling_h: 0,
},
resolution: Resolution {
width: 1,
height: 1,
},
num_frames: 1,
};
}