1#![forbid(unsafe_code)]
7#![warn(missing_docs)]
8#![allow(clippy::missing_const_for_fn)]
10#![allow(clippy::cast_precision_loss)]
11#![allow(clippy::cast_possible_truncation)]
12#![allow(clippy::unnecessary_wraps)]
13#![allow(clippy::unused_self)]
14#![allow(clippy::doc_markdown)]
15#![allow(clippy::needless_pass_by_value)]
16#![allow(clippy::needless_borrows_for_generic_args)]
17#![allow(clippy::single_char_pattern)]
18#![cfg_attr(test, allow(clippy::expect_used, clippy::unwrap_used))]
20#![cfg_attr(test, allow(clippy::redundant_closure_for_method_calls))]
21#![cfg_attr(test, allow(clippy::redundant_clone))]
22#![cfg_attr(test, allow(clippy::uninlined_format_args))]
23#![cfg_attr(test, allow(clippy::cast_sign_loss))]
24
25pub mod command;
26pub mod contract;
27pub mod conversion;
28pub mod diagnostics;
29pub mod differential;
30pub mod error;
31pub mod evidence;
32pub mod executor;
33pub mod family_contract;
34pub mod integrity;
35pub mod layout_contract;
36pub mod oracle;
37pub mod parallel;
38pub mod patterns;
39pub mod playbook;
40pub mod process;
41pub mod provenance;
42pub use provenance::{
43 DerivedProvenance, Provenance, ProvenanceError, SourceProvenance, add_derived, compute_sha256,
44 create_source_provenance, get_apr_cli_version, load_provenance, save_provenance,
45 validate_comparison, validate_provenance, verify_files_exist, verify_provenance_integrity,
46};
47
48#[cfg(test)]
49pub mod test_fixtures;
50
51pub use command::{CommandOutput, CommandRunner, MockCommandRunner, RealCommandRunner};
52pub use contract::{
53 ContractTestConfig, DtypeByteEntry, DtypeByteSection, FormatContract, InvariantDef,
54 InvariantId, NamingExample, TensorNamingContract, ToleranceEntry, load_format_contract,
55 lookup_tolerance, run_contract_tests, validate_dtype_bytes, validate_tensor_name,
56};
57pub use conversion::{
58 ByteLevelRoundTripTest, CommutativityTest, ConversionBugType, ConversionConfig,
59 ConversionEvidence, ConversionExecutionResult, ConversionExecutor, ConversionFailureType,
60 ConversionOutputDir, ConversionResult, ConversionTest, ConversionTolerance, DEFAULT_TOLERANCES,
61 EPSILON, IdempotencyTest, QuantType, RoundTripTest, SemanticConversionTest, SemanticTestResult,
62 TensorNaming, all_backends, all_conversion_pairs, check_cardinality, check_tensor_names,
63 classify_failure, generate_conversion_tests, get_hf_cache_dir, resolve_hf_repo_to_cache,
64 resolve_model_path, split_hf_repo, tolerance_for,
65};
66pub use diagnostics::{
67 DiagnosticResult, DiagnosticsBundle, EnvironmentContext, FailFastReport, FailFastReporter,
68 FailureDetails, ReproductionInfo,
69};
70pub use differential::{
71 BenchResult, BenchmarkMetrics, CiAssertion, CiProfileResult, DiffBenchmarkResult, DiffConfig,
72 DifferentialExecutor, FormatConversionResult, InferenceComparisonResult, InspectResult,
73 ModelPreparationResult, ProfileAssertion, SixColumnProfile, TensorDiffResult, TensorMismatch,
74 TensorMismatchType, TokenComparison, convert_format_cached, prepare_model_with_provenance,
75 run_bench_throughput, run_diff_benchmark, run_inspect, run_profile_ci, run_six_column_profile,
76 verify_comparison_provenance,
77};
78pub use error::{Error, Result};
79pub use evidence::{Evidence, EvidenceCollector, Outcome, PerformanceMetrics};
80pub use executor::{
81 ExecutionConfig, ExecutionResult, Executor, FailurePolicy, ToolExecutor, ToolTestResult,
82};
83pub use integrity::{
84 ConfigValues, IntegrityResult, TensorDerivedValues, check_safetensors_integrity,
85 gate_ids as integrity_gate_ids,
86};
87pub use layout_contract::{
88 ModelValidationResult, TensorLayoutContract, TensorSpec, TensorValidationResult,
89 ValidationRule, get_critical_tensors, get_validation_rules, load_contract, load_contract_from,
90 validate_model,
91};
92pub use oracle::{
93 CheckStatus, Confidence, CrossReference, FalsificationCheckItem, OracleContext, OracleEnhancer,
94 OracleError, RankedHypothesis, generate_checklist_markdown,
95};
96pub use parallel::{ParallelConfig, ParallelExecutor, ParallelResult};
97pub use patterns::{
98 ApiComplianceChecker, ApiComplianceResult, BugPattern, CompanionCheckResult, DosCheckResult,
99 DosProtectionConfig, DosViolation, IntegrityCheckResult, IntegrityChecker,
100 NumericalStabilityResult, ParityCheckResult, ParityChecker, PathSafetyResult, PathViolation,
101 PatternDetector, PerformanceCheckResult, PerformanceThresholds, PerformanceValidator,
102 PromptPattern, PromptSafetyResult, SpecGate, TensorValidityResult,
103};
104pub use playbook::{
105 DifferentialTestConfig, FingerprintConfig, FormatValidationConfig, InferenceCompareConfig,
106 OllamaParityConfig, Playbook, PlaybookLockEntry, PlaybookLockFile, PlaybookStep,
107 ProfileCiAssertions, ProfileCiConfig, SkipReason, SkipType, StatsToleranceConfig,
108 TensorDiffConfig, TracePayloadConfig, ValidateStatsConfig, compute_playbook_hash,
109 detect_implicit_skips, find_skip_files, generate_lock_entry, load_lock_file, save_lock_file,
110 verify_playbook_integrity,
111};