mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-08 13:01:52 +00:00
intersect.surface_drop_lib_p1: second review fixes
- Generator back to main's buckets (88..=98 iso, 99 plane line) so every generated case keeps its inputs; the wider trim generator runs as 400 fixed-seed cases trim0000..trim0399 appended after the 1500. - Wire the surface cache iso curves of planes and surfaces of revolution (SmPlane / SmSurfOfRevolution::CreateIsoParametricCurve), taking PR #270's surface_cache/p1.rs and caller changes unchanged, plus the plane branch of GetIsoBoundaryCurves (gen0072 of surface_intersector_p5 passes here thanks to the ComputeSingularityPoint dispatch fix). - Trim record carries each UV curve's GetType(); the shim writes a NULL_CURVE sentinel for a NULL entry. - surface.plane_p2 and surface.surface_cache_p3 promoted to green; notes, findings and reports updated. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pfe7dodPG5rpuN9B8QcnuX
This commit is contained in:
@@ -16,12 +16,13 @@
|
||||
//!
|
||||
//! Deferred cases: `TestSpanAccuracy` spans that reach `smsurf_IsPointOnNormal`
|
||||
//! (`surface.surface_p3`), `DropAndTrimCurve`s whose trace reaches unported code
|
||||
//! (the plane and surface-of-revolution iso curves of the surface cache tree,
|
||||
//! `surface.surface_cache_p1`; non-plane `SmSurface::DropCurve`,
|
||||
//! `intersect.surface_drop_lib_p3`), and surface evaluations of kinds whose evaluators
|
||||
//! are not ported yet.
|
||||
//! (an `SmCrvOnSurf` over a plane or surface of revolution, `curve.crv_on_surf`;
|
||||
//! non-plane `SmSurface::DropCurve`, `intersect.surface_drop_lib_p3`; the classification
|
||||
//! `ReSet` / `ConnectIntervals` stubs, `intersect.curve_class_p2`), and surface
|
||||
//! evaluations of kinds whose evaluators are not ported yet.
|
||||
//!
|
||||
//! At least [`MIN_GENERATED`] generated cases run.
|
||||
//! At least [`MIN_GENERATED`] generated cases run, then [`TRIM_CASES`] fixed-seed
|
||||
//! `DropAndTrimCurve` cases (`trim0000` ..).
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
@@ -53,13 +54,19 @@ use solidcore::topology::ObjectHandle;
|
||||
use solidcore::SolidError;
|
||||
use solidcore_ffi::units::intersect_surface_drop_lib_p1 as ffi;
|
||||
|
||||
use crate::case::CaseContext;
|
||||
use crate::case::{CaseContext, CaseSource};
|
||||
use crate::runner::default_cases;
|
||||
use crate::{Case, HarnessError, Output, Rng, UnitDiff};
|
||||
|
||||
/// Generated cases per run, whatever `--seeds` says (it can only raise this).
|
||||
pub const MIN_GENERATED: usize = 1500;
|
||||
|
||||
/// `DropAndTrimCurve` cases appended after the generated ones ([`trim_cases`]).
|
||||
pub const TRIM_CASES: u64 = 400;
|
||||
|
||||
/// First seed of the [`trim_cases`] (seed `TRIM_SEED + i` for case `trim{i:04}`).
|
||||
const TRIM_SEED: u64 = 0x5d1b_7a1c_0000_0000;
|
||||
|
||||
/// `intersect.surface_drop_lib_p1` runner.
|
||||
pub struct Runner;
|
||||
|
||||
@@ -931,6 +938,8 @@ fn run_op(k: &Kernel, i: &Inputs, o: &mut Vec<f64>) -> Result<(), Fail> {
|
||||
r.uv_curves.len() as f64,
|
||||
]);
|
||||
for cv in &r.uv_curves {
|
||||
// the curve's GetType() (an SmLine or an SmBSplineCurve), then its data
|
||||
o.push(cv.type_code() as f64);
|
||||
let put = put_uv_curve(o, cv).ok_or_else(|| harness("trim curve kind"))?;
|
||||
st(put)?.map_err(|_| harness("trim curve data"))?;
|
||||
}
|
||||
@@ -1744,6 +1753,31 @@ fn gen_trim_plane_line(rng: &mut Rng, k: &Kernel) -> Option<Inputs> {
|
||||
})
|
||||
}
|
||||
|
||||
/// The fixed-seed `DropAndTrimCurve` cases ([`gen_trim`]), appended after the generated
|
||||
/// cases so that adding them leaves every generated case's inputs unchanged. Case `i`
|
||||
/// takes the first trim input of seed `TRIM_SEED + i` that the shim accepts.
|
||||
fn trim_cases(unit: &str) -> Vec<Case> {
|
||||
let k = Kernel::default();
|
||||
let mut out = Vec::new();
|
||||
for i in 0..TRIM_CASES {
|
||||
let seed = TRIM_SEED + i;
|
||||
let mut rng = Rng::new(seed);
|
||||
let got = (0..64).find_map(|_| {
|
||||
gen_trim(&mut rng, &k).filter(|t| ffi::encode(&ffi_op(t)).is_ok())
|
||||
});
|
||||
let Some(inputs) = got.and_then(|t| serde_json::to_value(t).ok()) else {
|
||||
continue;
|
||||
};
|
||||
out.push(Case {
|
||||
unit: unit.to_string(),
|
||||
name: format!("trim{i:04}"),
|
||||
source: CaseSource::Generated { seed },
|
||||
inputs,
|
||||
});
|
||||
}
|
||||
out
|
||||
}
|
||||
|
||||
fn gen_inputs(rng: &mut Rng) -> Inputs {
|
||||
let k = Kernel::default();
|
||||
loop {
|
||||
@@ -1778,8 +1812,8 @@ fn gen_inputs(rng: &mut Rng) -> Inputs {
|
||||
75..=78 => Some(gen_stack(rng)),
|
||||
79..=83 => Some(gen_fix_curves(rng)),
|
||||
84..=87 => Some(gen_dups(rng)),
|
||||
88..=94 => gen_iso(rng, &k),
|
||||
_ => gen_trim(rng, &k),
|
||||
88..=98 => gen_iso(rng, &k),
|
||||
_ => gen_trim_plane_line(rng, &k),
|
||||
};
|
||||
if let Some(i) = got {
|
||||
if ffi::encode(&ffi_op(&i)).is_ok() {
|
||||
@@ -1799,7 +1833,9 @@ impl UnitDiff for Runner {
|
||||
seeds: ctx.seeds.max(MIN_GENERATED),
|
||||
..ctx.clone()
|
||||
};
|
||||
default_cases(self, &ctx)
|
||||
let mut cases = default_cases(self, &ctx)?;
|
||||
cases.extend(trim_cases(self.id()));
|
||||
Ok(cases)
|
||||
}
|
||||
|
||||
fn run_cpp(&self, case: &Case) -> Result<Output, HarnessError> {
|
||||
|
||||
@@ -341,8 +341,13 @@ fn rust_cache(surface: Surface, t: &[NodeIn], handle: H) -> Result<SurfaceCache<
|
||||
/// `type dim knot_type form has [n p m cpts(x y z w) knots] ivl[2]`.
|
||||
fn put_bspline(o: &mut Vec<f64>, c: &Curve) -> Result<(), HarnessError> {
|
||||
o.extend([c.type_code() as f64, c.dim() as f64]);
|
||||
let CurveKind::BSpline(bs) = c.kind() else {
|
||||
return Err(harness("output curve is not a B-spline"));
|
||||
// the shim casts to `SmBSplineCurve`: the B-spline part of the line of a plane's iso
|
||||
// curve or of the circle of a sweep's
|
||||
let bs = match c.kind() {
|
||||
CurveKind::BSpline(bs) => bs,
|
||||
CurveKind::Line(l) => l.base(),
|
||||
CurveKind::Ellipse(e) => e.base(),
|
||||
_ => return Err(harness("output curve is not a B-spline kind")),
|
||||
};
|
||||
o.extend([
|
||||
f64::from(bs.knot_type() as i32),
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
|
||||
use solidcore::curve::curve::Curve;
|
||||
use solidcore::geom::extent1d::Extent1d;
|
||||
use solidcore::geom::extent2d::Extent2d;
|
||||
use solidcore::geom::global_solver::{Branch, GlobalSolver};
|
||||
@@ -392,7 +393,9 @@ fn put_point(o: &mut Vec<f64>, p: &TracePoint) {
|
||||
put_uv(o, p.curve_uv[0]);
|
||||
put_uv(o, p.curve_uv[1]);
|
||||
let s = &p.surface;
|
||||
for v in [s[0][0], s[1][0], s[0][1], s[1][1], s[2][0], s[0][2], s[2][2]] {
|
||||
for v in [
|
||||
s[0][0], s[1][0], s[0][1], s[1][1], s[2][0], s[0][2], s[2][2],
|
||||
] {
|
||||
put_vec(o, v);
|
||||
}
|
||||
}
|
||||
@@ -544,7 +547,7 @@ fn run_op(
|
||||
OpIn::Boundary { curve, interval } => {
|
||||
let c = rust_curve(curve)?;
|
||||
let ivl = Extent1d::from_min_max(interval[0], interval[1]);
|
||||
match st(sil.find_solutions_on_boundary_curve(k, &c, &ivl))? {
|
||||
match st(sil.find_solutions_on_boundary_curve(k, &Curve::from(c), &ivl))? {
|
||||
Ok(sols) => {
|
||||
o.push(0.0);
|
||||
o.push(sols.as_slice().len() as f64);
|
||||
@@ -588,8 +591,7 @@ fn op_code(op: &OpIn) -> f64 {
|
||||
fn rust(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
let k = Kernel::default();
|
||||
let surface = rust_surface(&i.surface)?;
|
||||
let mut sil = match SurfaceSilhouette::new(&surface, &ext(i.domain), i.perspective, v3(i.eye))
|
||||
{
|
||||
let mut sil = match SurfaceSilhouette::new(&surface, &ext(i.domain), i.perspective, v3(i.eye)) {
|
||||
Ok(s) => s,
|
||||
Err(e) => {
|
||||
return Output::unported(&e)
|
||||
@@ -687,7 +689,14 @@ fn gen_random_bspline(rng: &mut Rng, scale: f64) -> SurfData {
|
||||
|
||||
/// A surface given by a height function `z(x, y)` sampled on a `n1 x m1` net of degree
|
||||
/// `p x q` over `[-1, 1]^2`, times `scale`.
|
||||
fn height_surface(n1: usize, m1: usize, p: usize, q: usize, scale: f64, z: impl Fn(f64, f64) -> f64) -> SurfData {
|
||||
fn height_surface(
|
||||
n1: usize,
|
||||
m1: usize,
|
||||
p: usize,
|
||||
q: usize,
|
||||
scale: f64,
|
||||
z: impl Fn(f64, f64) -> f64,
|
||||
) -> SurfData {
|
||||
let net = (0..n1)
|
||||
.map(|i| {
|
||||
(0..m1)
|
||||
@@ -744,7 +753,9 @@ fn gen_bspline(rng: &mut Rng, scale: f64) -> SurfData {
|
||||
// parabolic cylinder: zero Gaussian curvature
|
||||
2 => height_surface(4, 3, 2, 2, scale, |x, _| 0.5 * x * x),
|
||||
// monkey-saddle-like wave: curvature sign changes
|
||||
3 => height_surface(6, 6, 3, 3, scale, |x, y| 0.3 * (x * x * x - 3.0 * x * y * y)),
|
||||
3 => height_surface(6, 6, 3, 3, scale, |x, y| {
|
||||
0.3 * (x * x * x - 3.0 * x * y * y)
|
||||
}),
|
||||
4 => quarter_cylinder(scale),
|
||||
_ => gen_random_bspline(rng, scale),
|
||||
}
|
||||
|
||||
@@ -26,7 +26,9 @@ use solidcore::curve::curve::{Curve, CurveKind};
|
||||
use solidcore::curve::line::Line;
|
||||
use solidcore::geom::extent1d::Extent1d;
|
||||
use solidcore::geom::extent2d::Extent2d;
|
||||
use solidcore::geom::solution_array::{ObjectKind, Solution, SolutionArray, SolutionObject, SolutionType};
|
||||
use solidcore::geom::solution_array::{
|
||||
ObjectKind, Solution, SolutionArray, SolutionObject, SolutionType,
|
||||
};
|
||||
use solidcore::geom::vector2d::{Point2, Vec2};
|
||||
use solidcore::geom::vector3d::{Point3, Vec3};
|
||||
use solidcore::intersect::surface_tracer::{
|
||||
@@ -324,8 +326,15 @@ fn rust_curve(c: &CurveIn) -> Result<Curve, HarnessError> {
|
||||
.map_err(|e| harness(format!("segment: {e}"))),
|
||||
CurveIn::Bspline(d) => {
|
||||
let pw: Vec<CPoint> = d.cpts.iter().map(cpoint).collect();
|
||||
let n = pw.len().checked_sub(1).ok_or_else(|| harness("empty curve"))?;
|
||||
let m = d.knots.len().checked_sub(1).ok_or_else(|| harness("no knots"))?;
|
||||
let n = pw
|
||||
.len()
|
||||
.checked_sub(1)
|
||||
.ok_or_else(|| harness("empty curve"))?;
|
||||
let m = d
|
||||
.knots
|
||||
.len()
|
||||
.checked_sub(1)
|
||||
.ok_or_else(|| harness("no knots"))?;
|
||||
BSplineCurve::from_data(3, n, m, d.p, &pw, &d.knots)
|
||||
.map(Curve::from)
|
||||
.map_err(|e| harness(format!("B-spline: {e}")))
|
||||
@@ -471,7 +480,7 @@ impl<'s> SurfaceTrace<'s> for SectionTracer<'s> {
|
||||
fn find_solutions_on_boundary_curve(
|
||||
&self,
|
||||
_k: &Kernel,
|
||||
boundary: &BSplineCurve,
|
||||
boundary: &Curve,
|
||||
interval: &Extent1d,
|
||||
_side: usize,
|
||||
_param: SurfParamType,
|
||||
|
||||
@@ -182,8 +182,13 @@ fn no_face() -> i64 {
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(tag = "p", rename_all = "snake_case")]
|
||||
enum ProgIn {
|
||||
Find { class: u8, stack: Vec<usize> },
|
||||
Region { node: usize },
|
||||
Find {
|
||||
class: u8,
|
||||
stack: Vec<usize>,
|
||||
},
|
||||
Region {
|
||||
node: usize,
|
||||
},
|
||||
Mark,
|
||||
Set {
|
||||
node: usize,
|
||||
@@ -192,7 +197,9 @@ enum ProgIn {
|
||||
face: i64,
|
||||
},
|
||||
Dump,
|
||||
FirstPatch { node: usize },
|
||||
FirstPatch {
|
||||
node: usize,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
@@ -297,7 +304,10 @@ struct Inputs {
|
||||
fn numbers(path: &str) -> Result<Vec<f64>, HarnessError> {
|
||||
let text = std::fs::read_to_string(path).map_err(|e| harness(format!("{path}: {e}")))?;
|
||||
text.split_whitespace()
|
||||
.map(|t| t.parse::<f64>().map_err(|e| harness(format!("{path}: {e}"))))
|
||||
.map(|t| {
|
||||
t.parse::<f64>()
|
||||
.map_err(|e| harness(format!("{path}: {e}")))
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
@@ -314,7 +324,10 @@ fn int(path: &str, v: f64) -> Result<usize, HarnessError> {
|
||||
pub(crate) fn read_sms(path: &str) -> Result<InlineSrf, HarnessError> {
|
||||
let v = numbers(path)?;
|
||||
let mut it = v.into_iter();
|
||||
let mut num = || it.next().ok_or_else(|| harness(format!("{path}: truncated")));
|
||||
let mut num = || {
|
||||
it.next()
|
||||
.ok_or_else(|| harness(format!("{path}: truncated")))
|
||||
};
|
||||
let n = int(path, num()?)?;
|
||||
let m = int(path, num()?)?;
|
||||
let p = int(path, num()?)?;
|
||||
@@ -330,8 +343,12 @@ pub(crate) fn read_sms(path: &str) -> Result<InlineSrf, HarnessError> {
|
||||
}
|
||||
net.push(row);
|
||||
}
|
||||
let u = (0..n + p + 2).map(|_| num()).collect::<Result<Vec<_>, _>>()?;
|
||||
let v = (0..m + q + 2).map(|_| num()).collect::<Result<Vec<_>, _>>()?;
|
||||
let u = (0..n + p + 2)
|
||||
.map(|_| num())
|
||||
.collect::<Result<Vec<_>, _>>()?;
|
||||
let v = (0..m + q + 2)
|
||||
.map(|_| num())
|
||||
.collect::<Result<Vec<_>, _>>()?;
|
||||
Ok(InlineSrf { net, p, q, u, v })
|
||||
}
|
||||
|
||||
@@ -343,9 +360,15 @@ pub(crate) fn srf(s: &SrfIn) -> Result<InlineSrf, HarnessError> {
|
||||
}
|
||||
|
||||
pub(crate) fn shape(s: &InlineSrf) -> Result<(usize, usize), HarnessError> {
|
||||
let n = s.net.len().checked_sub(1).ok_or_else(|| harness("empty net"))?;
|
||||
let n = s
|
||||
.net
|
||||
.len()
|
||||
.checked_sub(1)
|
||||
.ok_or_else(|| harness("empty net"))?;
|
||||
let cols = s.net.first().map_or(0, Vec::len);
|
||||
let m = cols.checked_sub(1).ok_or_else(|| harness("empty net row"))?;
|
||||
let m = cols
|
||||
.checked_sub(1)
|
||||
.ok_or_else(|| harness("empty net row"))?;
|
||||
if s.net.iter().any(|r| r.len() != cols) {
|
||||
return Err(harness("net rows differ in length"));
|
||||
}
|
||||
@@ -361,8 +384,15 @@ pub(crate) fn flag(b: bool) -> f64 {
|
||||
pub(crate) fn push_srf(o: &mut Vec<f64>, s: &InlineSrf) -> Result<(), HarnessError> {
|
||||
let (n, m) = shape(s)?;
|
||||
o.extend(
|
||||
[n, m, s.p, s.q, s.u.len().saturating_sub(1), s.v.len().saturating_sub(1)]
|
||||
.map(|x| x as f64),
|
||||
[
|
||||
n,
|
||||
m,
|
||||
s.p,
|
||||
s.q,
|
||||
s.u.len().saturating_sub(1),
|
||||
s.v.len().saturating_sub(1),
|
||||
]
|
||||
.map(|x| x as f64),
|
||||
);
|
||||
for row in &s.net {
|
||||
for p in row {
|
||||
@@ -559,8 +589,12 @@ fn cpp_input(i: &Inputs) -> Result<(Op, Vec<f64>), HarnessError> {
|
||||
}
|
||||
|
||||
fn to_output(flat: &[f64]) -> Output {
|
||||
let (status, rest) = flat.split_first().map_or((f64::NAN, &[][..]), |(s, r)| (*s, r));
|
||||
Output::new().values("status", vec![status]).values("out", rest.to_vec())
|
||||
let (status, rest) = flat
|
||||
.split_first()
|
||||
.map_or((f64::NAN, &[][..]), |(s, r)| (*s, r));
|
||||
Output::new()
|
||||
.values("status", vec![status])
|
||||
.values("out", rest.to_vec())
|
||||
}
|
||||
|
||||
fn cpp(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
@@ -575,7 +609,11 @@ pub(crate) fn surface_of(s: &InlineSrf) -> Result<NlSurface, HarnessError> {
|
||||
let net = s
|
||||
.net
|
||||
.iter()
|
||||
.map(|r| r.iter().map(|&[x, y, z, w]| CPoint::new(x, y, z, w)).collect())
|
||||
.map(|r| {
|
||||
r.iter()
|
||||
.map(|&[x, y, z, w]| CPoint::new(x, y, z, w))
|
||||
.collect()
|
||||
})
|
||||
.collect();
|
||||
NlSurface::new(net, s.p, s.q, s.u.clone(), s.v.clone())
|
||||
.map_err(|e| harness(format!("surface input: {e}")))
|
||||
@@ -708,6 +746,18 @@ fn dump_curve(o: &mut Vec<f64>, c: &BSplineCurve) {
|
||||
}
|
||||
}
|
||||
|
||||
/// An iso curve as the shim dumps it: the NURB of its `SmBSplineCurve` part (the base of
|
||||
/// the `SmLine` of a plane or of the `SmCircle` of a sweep).
|
||||
fn dump_iso_curve(o: &mut Vec<f64>, c: &SmCurve) -> Result<(), HarnessError> {
|
||||
match c.kind() {
|
||||
CurveKind::BSpline(b) => dump_curve(o, b),
|
||||
CurveKind::Line(l) => dump_curve(o, l.base()),
|
||||
CurveKind::Ellipse(e) => dump_curve(o, e.base()),
|
||||
_ => return Err(harness("iso curve is not a B-spline kind")),
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn dump_curve_list(o: &mut Vec<f64>, l: Option<&Vec<SmCurve>>) -> Result<(), HarnessError> {
|
||||
let Some(l) = l else {
|
||||
o.push(0.0);
|
||||
@@ -870,7 +920,7 @@ fn rust_op(i: &Inputs) -> Result<Run, HarnessError> {
|
||||
match bp.create_boundary_curve_for_index(&k, &surface, *index) {
|
||||
Ok(c) => {
|
||||
o.push(0.0);
|
||||
dump_curve(&mut o, &c);
|
||||
dump_iso_curve(&mut o, &c)?;
|
||||
}
|
||||
Err(e) if e.is_unported() => return Ok(Err(e)),
|
||||
Err(e) => o.push(status(&e)),
|
||||
@@ -984,7 +1034,8 @@ fn rust_op(i: &Inputs) -> Result<Run, HarnessError> {
|
||||
o.push(copies.curves_3d.as_ref().map_or(0.0, |v| v.len() as f64));
|
||||
o.push(copies.curves_uv.as_ref().map_or(0.0, |v| v.len() as f64));
|
||||
}
|
||||
match cache.has_cached_curves(alt_type(q.ty), q.approx, q.angle, &key, q.w3, q.wuv) {
|
||||
match cache.has_cached_curves(alt_type(q.ty), q.approx, q.angle, &key, q.w3, q.wuv)
|
||||
{
|
||||
Ok(Some(c)) => {
|
||||
o.push(1.0);
|
||||
dump_curve_list(&mut o, c.curves_3d.as_ref())?;
|
||||
@@ -1102,7 +1153,9 @@ fn rust_op(i: &Inputs) -> Result<Run, HarnessError> {
|
||||
face,
|
||||
} => {
|
||||
let t = cache.tree_mut().ok_or_else(|| harness("no tree"))?;
|
||||
let n = t.node_mut(NodeId(*node)).map_err(|e| harness(e.to_string()))?;
|
||||
let n = t
|
||||
.node_mut(NodeId(*node))
|
||||
.map_err(|e| harness(e.to_string()))?;
|
||||
if let NodeData::Surface(a) = &mut n.data {
|
||||
a.is_marked = *marked;
|
||||
a.node_class = class_of(*class)?;
|
||||
@@ -1122,7 +1175,11 @@ fn rust_op(i: &Inputs) -> Result<Run, HarnessError> {
|
||||
match cache.first_bezier_patch(NodeId(*node)) {
|
||||
Ok(None) => o.push(0.0),
|
||||
Ok(Some(p)) => {
|
||||
o.push(if own.is_some_and(|q| std::ptr::eq(p, q)) { 1.0 } else { 2.0 });
|
||||
o.push(if own.is_some_and(|q| std::ptr::eq(p, q)) {
|
||||
1.0
|
||||
} else {
|
||||
2.0
|
||||
});
|
||||
}
|
||||
Err(e) => return Err(harness(format!("first patch: {e}"))),
|
||||
}
|
||||
@@ -1144,8 +1201,14 @@ fn rust_op(i: &Inputs) -> Result<Run, HarnessError> {
|
||||
}
|
||||
OpIn::Cont { u, v, dom } => {
|
||||
let mut cache = cache_of(need()?, None);
|
||||
let uc = u.iter().map(|&c| continuity_of(c)).collect::<Result<Vec<_>, _>>()?;
|
||||
let vc = v.iter().map(|&c| continuity_of(c)).collect::<Result<Vec<_>, _>>()?;
|
||||
let uc = u
|
||||
.iter()
|
||||
.map(|&c| continuity_of(c))
|
||||
.collect::<Result<Vec<_>, _>>()?;
|
||||
let vc = v
|
||||
.iter()
|
||||
.map(|&c| continuity_of(c))
|
||||
.collect::<Result<Vec<_>, _>>()?;
|
||||
cache.set_continuities(uc, vc);
|
||||
cache.surface_continuity(&dom_of(*dom)).map(|c| {
|
||||
o.push(f64::from(c as i32));
|
||||
@@ -1160,7 +1223,7 @@ fn rust_op(i: &Inputs) -> Result<Run, HarnessError> {
|
||||
o.push(0.0);
|
||||
o.push(flag(r.cached));
|
||||
for c in &r.curves {
|
||||
dump_curve(&mut o, c);
|
||||
dump_iso_curve(&mut o, c)?;
|
||||
}
|
||||
}
|
||||
Err(e) if e.is_unported() => return Ok(Err(e)),
|
||||
@@ -1204,7 +1267,9 @@ fn rust_op(i: &Inputs) -> Result<Run, HarnessError> {
|
||||
o.push(st(cache.implant_poly_edge(0, NodeId(0))));
|
||||
push_dom(&mut o, &cache.uv_domain());
|
||||
o.push(1.0);
|
||||
o.push(flag(cache.patch_boundary_bounding_planes().are_planes_computed()));
|
||||
o.push(flag(
|
||||
cache.patch_boundary_bounding_planes().are_planes_computed(),
|
||||
));
|
||||
Ok(o)
|
||||
}
|
||||
OpIn::Face => {
|
||||
@@ -1222,9 +1287,7 @@ fn rust(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
let run = rust_op(i)?;
|
||||
let is_subdiv = matches!(i.op, OpIn::Subdiv { .. });
|
||||
Ok(match run {
|
||||
Ok(o) if is_subdiv => Output::new()
|
||||
.values("status", vec![0.0])
|
||||
.values("out", o),
|
||||
Ok(o) if is_subdiv => Output::new().values("status", vec![0.0]).values("out", o),
|
||||
Ok(o) => to_output(&o),
|
||||
Err(e) => Output::unported(&e).unwrap_or_else(|| to_output(&[status(&e)])),
|
||||
})
|
||||
@@ -1275,7 +1338,11 @@ pub(crate) fn gen_srf(rng: &mut Rng, max_deg: usize) -> InlineSrf {
|
||||
let n = p + rng.below(3) as usize;
|
||||
let m = q + rng.below(3) as usize;
|
||||
let kind = rng.below(5);
|
||||
let amp = if kind == 1 { 0.0 } else { rng.uniform(0.0, 1.0) };
|
||||
let amp = if kind == 1 {
|
||||
0.0
|
||||
} else {
|
||||
rng.uniform(0.0, 1.0)
|
||||
};
|
||||
let rational = rng.chance(0.15);
|
||||
let net = (0..=n)
|
||||
.map(|i| {
|
||||
@@ -1326,7 +1393,11 @@ pub(crate) fn gen_srf(rng: &mut Rng, max_deg: usize) -> InlineSrf {
|
||||
pub(crate) fn gen_bss(rng: &mut Rng, s: InlineSrf) -> BssIn {
|
||||
BssIn {
|
||||
oob: rng.chance(0.1),
|
||||
form: if rng.chance(0.85) { 11 } else { rng.below(10) as u8 },
|
||||
form: if rng.chance(0.85) {
|
||||
11
|
||||
} else {
|
||||
rng.below(10) as u8
|
||||
},
|
||||
srf: SrfIn::Inline(s),
|
||||
}
|
||||
}
|
||||
@@ -1335,7 +1406,14 @@ pub(crate) fn gen_curve(rng: &mut Rng) -> CrvIn {
|
||||
let p = 1 + rng.below(3) as usize;
|
||||
let n = p + rng.below(3) as usize;
|
||||
let cpts = (0..=n)
|
||||
.map(|i| [i as f64, rng.uniform(-1.0, 1.0), rng.uniform(-1.0, 1.0), NOW])
|
||||
.map(|i| {
|
||||
[
|
||||
i as f64,
|
||||
rng.uniform(-1.0, 1.0),
|
||||
rng.uniform(-1.0, 1.0),
|
||||
NOW,
|
||||
]
|
||||
})
|
||||
.collect();
|
||||
CrvIn {
|
||||
dim: 3,
|
||||
@@ -1369,11 +1447,7 @@ pub(crate) fn gen_sub_dom(rng: &mut Rng, d: [f64; 4]) -> [f64; 4] {
|
||||
}
|
||||
|
||||
pub(crate) fn gvec(rng: &mut Rng, s: f64) -> [f64; 3] {
|
||||
[
|
||||
rng.uniform(-s, s),
|
||||
rng.uniform(-s, s),
|
||||
rng.uniform(-s, s),
|
||||
]
|
||||
[rng.uniform(-s, s), rng.uniform(-s, s), rng.uniform(-s, s)]
|
||||
}
|
||||
|
||||
pub(crate) fn gen_key(rng: &mut Rng) -> KeyIn {
|
||||
@@ -1390,7 +1464,11 @@ pub(crate) fn gen_key(rng: &mut Rng) -> KeyIn {
|
||||
pub(crate) fn perturb_key(rng: &mut Rng, k: &KeyIn) -> KeyIn {
|
||||
let mut q = k.clone();
|
||||
match rng.below(6) {
|
||||
0 => q.vec = q.vec.map(|v| [v[0] + rng.uniform(-1e-12, 1e-12), v[1], v[2]]),
|
||||
0 => {
|
||||
q.vec = q
|
||||
.vec
|
||||
.map(|v| [v[0] + rng.uniform(-1e-12, 1e-12), v[1], v[2]]);
|
||||
}
|
||||
1 => q.b = None,
|
||||
2 => q.l = q.l.map(|l| l + 1),
|
||||
3 => q.d = q.d.map(|d| d + rng.uniform(-2e-12, 2e-12)),
|
||||
@@ -1435,7 +1513,11 @@ fn gen_tree(rng: &mut Rng, dom: [f64; 4], polar: bool) -> Vec<NodeIn> {
|
||||
node.c2 = n + 1;
|
||||
node.split = split;
|
||||
node.aux = aux;
|
||||
let f = if rng.chance(0.7) { 0.5 } else { rng.uniform(0.2, 0.8) };
|
||||
let f = if rng.chance(0.7) {
|
||||
0.5
|
||||
} else {
|
||||
rng.uniform(0.2, 0.8)
|
||||
};
|
||||
let (d1, d2) = if split == 0 {
|
||||
let m = d[0] + f * (d[2] - d[0]);
|
||||
([d[0], d[1], m, d[3]], [m, d[1], d[2], d[3]])
|
||||
@@ -1489,7 +1571,9 @@ fn gen_prog(rng: &mut Rng, t: &[NodeIn]) -> Vec<ProgIn> {
|
||||
stack: if rng.chance(0.6) {
|
||||
vec![0]
|
||||
} else {
|
||||
(0..=rng.below(3)).map(|_| rng.below(n as u64) as usize).collect()
|
||||
(0..=rng.below(3))
|
||||
.map(|_| rng.below(n as u64) as usize)
|
||||
.collect()
|
||||
},
|
||||
},
|
||||
1 | 2 => ProgIn::Region {
|
||||
@@ -1598,7 +1682,12 @@ fn gen_case(rng: &mut Rng) -> Inputs {
|
||||
c: if rng.chance(0.15) {
|
||||
[[1.0, 1.0, 1.0]; 4]
|
||||
} else {
|
||||
[gvec(rng, 3.0), gvec(rng, 3.0), gvec(rng, 3.0), gvec(rng, 3.0)]
|
||||
[
|
||||
gvec(rng, 3.0),
|
||||
gvec(rng, 3.0),
|
||||
gvec(rng, 3.0),
|
||||
gvec(rng, 3.0),
|
||||
]
|
||||
},
|
||||
},
|
||||
7 => OpIn::SizeSurf {
|
||||
@@ -1671,7 +1760,11 @@ fn gen_case(rng: &mut Rng) -> Inputs {
|
||||
let cache = gen_sub_dom(rng, d);
|
||||
let calls = (0..=rng.below(4))
|
||||
.map(|_| {
|
||||
let dd = if rng.chance(0.6) { cache } else { gen_sub_dom(rng, d) };
|
||||
let dd = if rng.chance(0.6) {
|
||||
cache
|
||||
} else {
|
||||
gen_sub_dom(rng, d)
|
||||
};
|
||||
(dd, *rng.choose(&[0.001, 0.01, 0.0005]).unwrap_or(&0.001))
|
||||
})
|
||||
.collect();
|
||||
@@ -1681,7 +1774,9 @@ fn gen_case(rng: &mut Rng) -> Inputs {
|
||||
let sub = gen_sub_dom(rng, d);
|
||||
let tree = gen_tree(rng, sub, true);
|
||||
let n = tree.len();
|
||||
let nodes = (0..=rng.below(4)).map(|_| rng.below(n as u64) as usize).collect();
|
||||
let nodes = (0..=rng.below(4))
|
||||
.map(|_| rng.below(n as u64) as usize)
|
||||
.collect();
|
||||
OpIn::Polar { tree, nodes }
|
||||
}
|
||||
_ => match rng.below(3) {
|
||||
@@ -1692,7 +1787,10 @@ fn gen_case(rng: &mut Rng) -> Inputs {
|
||||
_ => OpIn::Misc {
|
||||
dom: gen_sub_dom(rng, d),
|
||||
test: rng.chance(0.5),
|
||||
uv: [rng.uniform(d[0] - 0.5, d[2] + 0.5), rng.uniform(d[1] - 0.5, d[3] + 0.5)],
|
||||
uv: [
|
||||
rng.uniform(d[0] - 0.5, d[2] + 0.5),
|
||||
rng.uniform(d[1] - 0.5, d[3] + 0.5),
|
||||
],
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -1768,8 +1866,19 @@ mod tests {
|
||||
println!("{k:?}: {v}");
|
||||
}
|
||||
for op in [
|
||||
"Plane3", "Halfspace", "BPlanes", "SizeCorners", "SizeSurf", "Corners", "Alt",
|
||||
"TreeTop", "Subdiv", "Cont", "Iso", "Misc", "Cull",
|
||||
"Plane3",
|
||||
"Halfspace",
|
||||
"BPlanes",
|
||||
"SizeCorners",
|
||||
"SizeSurf",
|
||||
"Corners",
|
||||
"Alt",
|
||||
"TreeTop",
|
||||
"Subdiv",
|
||||
"Cont",
|
||||
"Iso",
|
||||
"Misc",
|
||||
"Cull",
|
||||
] {
|
||||
assert!(
|
||||
tally.keys().any(|(n, k)| n == op && k == "status:0"),
|
||||
|
||||
@@ -27,7 +27,10 @@
|
||||
//! | `FixCurves` | `sm_FixBoundaryCurves(poly, dom, tx, ty, change = FALSE)` | `change poly` |
|
||||
//! | `Dups` | `sm_RemoveDuplicateDropPointSolutions` (`m_vStart = (u, v)`, value = index) | `count (index u v)*` |
|
||||
//! | `Iso` | `DropIsoCurve` | `status [ok max_drop max_dev has [curve]]` |
|
||||
//! | `Trim` | `DropAndTrimCurve(.., keep, on_surface, NULL)` | `status [max_drop max_dev n curves]` |
|
||||
//! | `Trim` | `DropAndTrimCurve(.., keep, on_surface, NULL)` | `status [max_drop max_dev n (type curve)*]` |
|
||||
//!
|
||||
//! In `Trim`, each curve is its `GetType()` followed by its data, or the single value
|
||||
//! [`NULL_CURVE`] for a `NULL` entry.
|
||||
//!
|
||||
//! A surface of revolution whose `CreateCanonical` fails makes the record
|
||||
//! [[`NO_SURFACE`]]. [`run`] accepts only finite inputs of magnitude at most
|
||||
@@ -65,6 +68,8 @@ pub const NOW: f64 = -f64::MAX;
|
||||
pub const REJECTED: f64 = -2.0;
|
||||
/// The record of an op whose surface of revolution could not be made.
|
||||
pub const NO_SURFACE: f64 = -3.0;
|
||||
/// The `Trim` entry of a `NULL` curve (in place of its type and data).
|
||||
pub const NULL_CURVE: f64 = -4.0;
|
||||
/// Values per drop point.
|
||||
pub const PT_LEN: usize = 38;
|
||||
|
||||
|
||||
@@ -985,7 +985,7 @@ impl<'s> SurfaceDropCurve<'s> {
|
||||
|
||||
// Add TargetSurface natural boundary curves to sIsoCurves array
|
||||
let iso = cache.iso_boundary_curves(k, &uv_domain, cci_tol / 3.0)?;
|
||||
let mut iso_curves: Vec<Curve> = iso.curves.iter().cloned().map(Curve::from).collect();
|
||||
let mut iso_curves: Vec<Curve> = iso.curves.to_vec();
|
||||
|
||||
// add every Surface U internal continuity boundary to sIsoCurves array
|
||||
let u_conts: Vec<ContinuityType> = cache.u_continuities().to_vec();
|
||||
|
||||
@@ -327,8 +327,8 @@ impl SurfaceIntersector<'_> {
|
||||
// Intersect Curves
|
||||
let ivl1 = bsc1.natural_interval();
|
||||
let ivl2 = bsc2.natural_interval();
|
||||
let crv1 = Curve::from(bsc1.clone());
|
||||
let crv2 = Curve::from(bsc2);
|
||||
let crv1 = bsc1.clone();
|
||||
let crv2 = bsc2;
|
||||
let opts = CurveIntersectOptions {
|
||||
skip_global_coincidence_check: false,
|
||||
handles: [
|
||||
@@ -371,7 +371,9 @@ impl SurfaceIntersector<'_> {
|
||||
if trim_ivl1.length() > EFF_ZERO {
|
||||
// copy and trim the Surf1->NaturalBoundaryCurve (status
|
||||
// ignored; may snap the interval to knots)
|
||||
let mut bsc = bsc1.clone();
|
||||
// (`new SmBSplineCurve(*pBSC1)`: a plain B-spline copy)
|
||||
let mut bsc =
|
||||
crate::surface::surface_cache::p1::copy_as_bspline(&bsc1)?;
|
||||
ignored(bsc.trim(k, &mut trim_ivl1, TrimMode::Notify))?;
|
||||
|
||||
// get SurfacePoints for each interval endPoint
|
||||
@@ -430,7 +432,7 @@ impl SurfaceIntersector<'_> {
|
||||
};
|
||||
|
||||
// output the curve
|
||||
out.curves_3d.push(Curve::from(bsc));
|
||||
out.curves_3d.push(bsc);
|
||||
out.curve_types.push(ty);
|
||||
out.deviations
|
||||
.push(max2(sol.start.solution_value, sol.end.solution_value));
|
||||
@@ -1733,7 +1735,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn plane_boundary_test_needs_plane_iso_curves() {
|
||||
fn plane_boundary_test_of_perpendicular_planes_is_unknown() {
|
||||
let (a, b) = two_planes();
|
||||
let d = Extent2d::from_bounds(0.0, 0.0, 1.0, 1.0);
|
||||
let si = SurfaceIntersector::new(&a, &d, &b, &d, false).unwrap();
|
||||
@@ -1743,6 +1745,8 @@ mod tests {
|
||||
let mut out = TsectCurves::default();
|
||||
let bbox = Extent3d::from_bounds(0.0, 0.0, 0.0, 1.0, 1.0, 1.0);
|
||||
let r = si.do_boundary_plane_test(&k, &mut p1, &mut p2, 1e-3, &bbox, &mut out);
|
||||
assert!(matches!(r, Err(e) if e.is_unported()));
|
||||
// (the bounding planes of a plane go through `SmPlane::CreateIsoParametricCurve`,
|
||||
// surface.plane_p1, ported): no pair of boundary planes has opposite normals
|
||||
assert_eq!(r.unwrap(), BoundaryPlaneTestResult::Unknown);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,19 +368,21 @@ impl SurfaceIntersector<'_> {
|
||||
|
||||
// BoundaryCurve BBox + Tol
|
||||
let boxes = tgt.calculate_bounding_box(
|
||||
k,
|
||||
&bsc_ivl,
|
||||
BoundingBoxRequest {
|
||||
normal: true,
|
||||
pseudo: false,
|
||||
polar: false,
|
||||
},
|
||||
true,
|
||||
)?;
|
||||
let mut bbox = boxes.normal.unwrap_or_default();
|
||||
bbox.expand_absolute(self.this_approx_tol_3d);
|
||||
|
||||
// when the intersection box meets the boundary curve box, intersect
|
||||
// OtherSurface with ThisSurface->BoundaryCurve
|
||||
let tgt_curve = Curve::from(tgt.clone());
|
||||
let tgt_curve = tgt.clone();
|
||||
let solutions = if bbox.are_disjoint(intersection_box, 0.0) {
|
||||
Vec::new()
|
||||
} else {
|
||||
@@ -610,7 +612,7 @@ impl SurfaceIntersector<'_> {
|
||||
fn use_boundary_point(
|
||||
&mut self,
|
||||
k: &Kernel,
|
||||
tgt: &BSplineCurve,
|
||||
tgt: &Curve,
|
||||
sol: &Solution<()>,
|
||||
uvs: [Point2; 2],
|
||||
mut tsp: TsectPnt,
|
||||
@@ -663,7 +665,7 @@ impl SurfaceIntersector<'_> {
|
||||
&mut self,
|
||||
k: &Kernel,
|
||||
caches: &[SurfaceCache<O>],
|
||||
tgt: &BSplineCurve,
|
||||
tgt: &Curve,
|
||||
sol: &Solution<()>,
|
||||
l_side: usize,
|
||||
out: &mut TsectCurves,
|
||||
@@ -672,7 +674,8 @@ impl SurfaceIntersector<'_> {
|
||||
let tol = self.this_approx_tol_3d;
|
||||
|
||||
// copy and trim the boundary curve (may snap the interval to knots)
|
||||
let mut result = Curve::from(tgt.clone());
|
||||
// (`new SmBSplineCurve(*pTgtBSC)`: a plain B-spline copy)
|
||||
let mut result = crate::surface::surface_cache::p1::copy_as_bspline(tgt)?;
|
||||
let mut trim_ivl = Extent1d::from_min_max(par(&sol.start, 0), par(&sol.end, 0));
|
||||
result.trim(k, &mut trim_ivl, TrimMode::Notify)?;
|
||||
out.curves_3d.push(result);
|
||||
|
||||
@@ -1353,10 +1353,13 @@ mod tests {
|
||||
|
||||
let b = plane([0.0, 0.5, -0.5], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]);
|
||||
let mut si = SurfaceIntersector::new(&a, &unit(), &b, &unit(), false).unwrap();
|
||||
assert!(matches!(
|
||||
si.find_interior_curves(&k, &mut out),
|
||||
Err(SolidError::Unported { .. })
|
||||
));
|
||||
// the node pairs of the global solve reach the local intersection (ported, with the
|
||||
// plane iso curves): it succeeds, or stops at an unported callee; the curves it
|
||||
// found are not those of the check below
|
||||
let mut first = TsectCurves::default();
|
||||
if let Err(e) = si.find_interior_curves(&k, &mut first) {
|
||||
assert!(e.is_unported(), "{e}");
|
||||
}
|
||||
// a pair next to a curve already found is skipped
|
||||
out.curves_3d.push(Curve::from(
|
||||
crate::curve::line::Line::create_line_segment(
|
||||
|
||||
@@ -75,7 +75,6 @@ use crate::intersect::surface_tracer::{
|
||||
};
|
||||
use crate::kernel::Kernel;
|
||||
use crate::math::{BIG_DOUBLE, EFF_ZERO, EFF_ZERO_SQ, EFF_ZERO_SQRT, PI};
|
||||
use crate::nurbs::b_spline_curve::BSplineCurve;
|
||||
use crate::nurbs::b_spline_surface::SurfParamType;
|
||||
use crate::nurbs::b_spline_surface_n_lib::p2::EvaluateFlags;
|
||||
use crate::nurbs::knots::Side;
|
||||
@@ -303,7 +302,7 @@ impl<'s> SurfaceSilhouette<'s> {
|
||||
pub fn find_solutions_on_boundary_curve(
|
||||
&self,
|
||||
k: &Kernel,
|
||||
boundary: &BSplineCurve,
|
||||
boundary: &Curve,
|
||||
interval: &Extent1d,
|
||||
) -> Result<SolutionArray<BoundaryCurve>> {
|
||||
let curve_prop = if self.perspective {
|
||||
@@ -318,7 +317,7 @@ impl<'s> SurfaceSilhouette<'s> {
|
||||
want_comb: false,
|
||||
handle: None,
|
||||
};
|
||||
let curve = Curve::from(boundary.clone());
|
||||
let curve = boundary;
|
||||
// the solutions name the curve (its cache tree's owner)
|
||||
opts.handle = Some(BoundaryCurve {
|
||||
natural_interval: Some(curve.natural_interval()),
|
||||
@@ -1008,7 +1007,7 @@ impl<'s> SurfaceTrace<'s> for SurfaceSilhouette<'s> {
|
||||
fn find_solutions_on_boundary_curve(
|
||||
&self,
|
||||
k: &Kernel,
|
||||
boundary: &BSplineCurve,
|
||||
boundary: &Curve,
|
||||
interval: &Extent1d,
|
||||
side: usize,
|
||||
param: SurfParamType,
|
||||
|
||||
@@ -625,7 +625,7 @@ pub trait SurfaceTrace<'s> {
|
||||
fn find_solutions_on_boundary_curve(
|
||||
&self,
|
||||
k: &Kernel,
|
||||
boundary: &BSplineCurve,
|
||||
boundary: &Curve,
|
||||
interval: &Extent1d,
|
||||
side: usize,
|
||||
param: SurfParamType,
|
||||
@@ -1731,7 +1731,8 @@ where
|
||||
}
|
||||
|
||||
// Add a copy of this solution curve to r3DCurves.
|
||||
let result = Curve::from(new_bsc.clone());
|
||||
// (`new SmBSplineCurve(*pNewBSC)`: a plain B-spline copy)
|
||||
let result = crate::surface::surface_cache::p1::copy_as_bspline(new_bsc)?;
|
||||
let result_ivl = result.natural_interval();
|
||||
out.curves_3d.push(result.clone());
|
||||
|
||||
|
||||
@@ -86,11 +86,10 @@
|
||||
//! those return [`SolidError::Unported`]. `EvaluateNormal` is
|
||||
//! [`Surface::evaluate_normal`] (`surface::surface::p7`, with the plane and
|
||||
//! curve-bounded overrides). An `SmPlane` is an
|
||||
//! `SmBSplineSurface` upstream: the cast gives its B-spline part, and its
|
||||
//! `CreateIsoParametricCurve` (an `SmLine`, which the cache cannot hold as a
|
||||
//! [`BSplineCurve`] without losing the line's overrides) and the inherited
|
||||
//! `CalculateBoundingBox` (which dispatches back to the plane) return
|
||||
//! [`SolidError::Unported`] (`surface.plane_p1`). Where upstream
|
||||
//! `SmBSplineSurface` upstream: the cast gives its B-spline part. The iso curves
|
||||
//! (`CreateIsoParametricCurve`, virtual: an `SmLine` for a plane, an `SmCircle` in
|
||||
//! the sweep direction of a surface of revolution) are held as [`Curve`], so the
|
||||
//! derived classes' overrides stay in effect. Where upstream
|
||||
//! casts with `SM_CAST_PTR(SmBSplineSurface, ...)` and `NER`s, a non-B-spline surface
|
||||
//! gives `SM_ERR_NULL_POINTER`. `PointClassify` is the base class body (`SM_ERR`); the
|
||||
//! trimmed surface cache overrides belong to `surface.trim_srf_cache`.
|
||||
@@ -113,7 +112,7 @@
|
||||
//! `GetBoundingPlane`, `GetBrep`, `GetMemoryUsed`, `AssertValid`, the `Dump` and
|
||||
//! `Draw` functions (other units or debug output).
|
||||
|
||||
use crate::curve::curve::p2::{approximate_length, Curve, CurveKind};
|
||||
use crate::curve::curve::p2::{Curve, CurveKind};
|
||||
use crate::error::{ignored, Result, SolidError};
|
||||
use crate::geom::extent1d::Extent1d;
|
||||
use crate::geom::extent2d::Extent2d;
|
||||
@@ -129,7 +128,7 @@ use crate::kernel::Kernel;
|
||||
use crate::math::{Point2, Point3, Vec2, Vec3, EFF_ZERO, EFF_ZERO_SQ, EFF_ZERO_SQRT};
|
||||
use crate::nurbs::b_spline_curve::BSplineCurve;
|
||||
use crate::nurbs::b_spline_surface::{
|
||||
BSplineSurface, BoundingBoxRequest, BoundingBoxes, IsoCurveOptions, SurfParamType,
|
||||
BSplineSurface, BoundingBoxRequest, BoundingBoxes, SurfParamType,
|
||||
};
|
||||
use crate::nurbs::b_spline_surface_n_lib::p2::EvaluateFlags;
|
||||
use crate::nurbs::math::NOW;
|
||||
@@ -182,19 +181,6 @@ pub(super) fn invalid(operation: &'static str, reason: &'static str) -> SolidErr
|
||||
SolidError::InvalidInput { operation, reason }
|
||||
}
|
||||
|
||||
/// `SmPlane::CreateIsoParametricCurve` (virtual, reached through an `SmSurface` or
|
||||
/// an `SmBSplineSurface` pointer): not wired into the cache.
|
||||
const fn plane_iso_unported() -> SolidError {
|
||||
// UNPORTED(surface.surface_cache_p1): SmPlane::CreateIsoParametricCurve. Ported as
|
||||
// Plane::create_iso_parametric_curve (surface.plane_p1), but it makes an SmLine and
|
||||
// this cache holds its iso curves as BSplineCurve, which would drop the SmLine
|
||||
// overrides (evaluation, length); wiring it needs Curve storage here.
|
||||
SolidError::unported(
|
||||
"SmPlane::CreateIsoParametricCurve",
|
||||
"surface.surface_cache_p1",
|
||||
)
|
||||
}
|
||||
|
||||
/// `SM_CAST_PTR(SmBSplineSurface, surface)` for callers that run only non-virtual
|
||||
/// `SmBSplineSurface` members: an `SmPlane` gives its B-spline part. Callers that
|
||||
/// reach a virtual member deal with planes first.
|
||||
@@ -210,6 +196,23 @@ pub(super) const fn bspline_of(surface: &Surface) -> Option<&BSplineSurface> {
|
||||
}
|
||||
}
|
||||
|
||||
/// `new SmBSplineCurve(*pCurve)` for an `SmBSplineCurve*` that may point at an `SmLine` or
|
||||
/// `SmCircle` (the iso curves of a plane or a sweep): the copy constructor of the base
|
||||
/// class makes a plain B-spline curve, dropping the derived class.
|
||||
///
|
||||
/// # Errors
|
||||
///
|
||||
/// `SM_ERR_NULL_POINTER` for a curve that is not of a B-spline kind.
|
||||
pub fn copy_as_bspline(curve: &Curve) -> Result<Curve> {
|
||||
// (an SmLine makes its NURB when the copy constructor asks for it)
|
||||
if let CurveKind::Line(l) = curve.kind() {
|
||||
return Ok(Curve::from(l.base_with_nurb()?.into_owned()));
|
||||
}
|
||||
bspline_curve_of(curve)
|
||||
.map(|b| Curve::from(b.clone()))
|
||||
.ok_or(SolidError::null_pointer(OP_COPY))
|
||||
}
|
||||
|
||||
/// `SM_CAST_PTR(SmBSplineCurve, curve)`: the B-spline (base) of the B-spline kinds.
|
||||
const fn bspline_curve_of(curve: &Curve) -> Option<&BSplineCurve> {
|
||||
match curve.kind() {
|
||||
@@ -229,60 +232,36 @@ const fn bspline_curve_of(curve: &Curve) -> Option<&BSplineCurve> {
|
||||
}
|
||||
}
|
||||
|
||||
/// `SmSurface::CreateIsoParametricCurve(ctx, param, iso, tol, curve, domain)`: the
|
||||
/// B-spline override (the 3D tolerance is not used by it); other kinds run the base
|
||||
/// class body.
|
||||
/// `SmSurface::CreateIsoParametricCurve(ctx, param, iso, tol, curve, domain)`, the
|
||||
/// virtual: the B-spline, plane (an `SmLine`) and surface of revolution (an
|
||||
/// `SmCircle` in the sweep direction) overrides, the base class body for the other
|
||||
/// kinds. The curve is held as a [`Curve`] so the derived classes' overrides
|
||||
/// (evaluation, length, degeneracy) stay in effect; the 3D tolerance is `0.0` as
|
||||
/// upstream's callers pass (the overrides do not use it).
|
||||
fn create_iso_parametric_curve(
|
||||
k: &Kernel,
|
||||
surface: &Surface,
|
||||
param: SurfParamType,
|
||||
iso: f64,
|
||||
domain: Option<Extent2d>,
|
||||
) -> Result<BSplineCurve> {
|
||||
) -> Result<Curve> {
|
||||
let r = surface.create_iso_parametric_curve(k, param, iso, 0.0, domain.as_ref(), false)?;
|
||||
match surface.kind() {
|
||||
SurfaceKind::BSpline(b) => bspline_iso_curve(k, b, param, iso, domain),
|
||||
SurfaceKind::Plane(_) => Err(plane_iso_unported()),
|
||||
// UNPORTED(surface.surface_cache_p1): SmSurfOfRevolution::CreateIsoParametricCurve.
|
||||
// Ported as SurfOfRevolution::create_iso_parametric_curve
|
||||
// (surface.surf_of_revolution_p1), but it makes an SmCircle in the sweep
|
||||
// direction and this cache holds its iso curves as BSplineCurve, which would drop
|
||||
// the SmEllipse overrides; wiring it needs Curve storage here.
|
||||
SurfaceKind::SurfOfRevolution(_) => Err(SolidError::unported(
|
||||
"SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"surface.surface_cache_p1",
|
||||
)),
|
||||
// the SmSurface body (surface.surface_p5); tolerance 0.0 as upstream's callers
|
||||
// the SmSurface body (surface.surface_p5) makes a B-spline
|
||||
SurfaceKind::CurveBounded(_)
|
||||
| SurfaceKind::Step(_)
|
||||
| SurfaceKind::OffsetSurface(_)
|
||||
| SurfaceKind::SrfInVolume(_) => {
|
||||
let r =
|
||||
surface.create_iso_parametric_curve(k, param, iso, 0.0, domain.as_ref(), false)?;
|
||||
match r.curve.into_kind() {
|
||||
CurveKind::BSpline(b) => Ok(b),
|
||||
_ => Err(SolidError::sm_err(
|
||||
"surface::surface_cache::p1::create_iso_parametric_curve",
|
||||
)),
|
||||
}
|
||||
| SurfaceKind::SrfInVolume(_)
|
||||
if !matches!(r.curve.kind(), CurveKind::BSpline(_)) =>
|
||||
{
|
||||
Err(SolidError::sm_err(
|
||||
"surface::surface_cache::p1::create_iso_parametric_curve",
|
||||
))
|
||||
}
|
||||
_ => Ok(r.curve),
|
||||
}
|
||||
}
|
||||
|
||||
/// `SmBSplineSurface::CreateIsoParametricCurve` without UV curve.
|
||||
fn bspline_iso_curve(
|
||||
k: &Kernel,
|
||||
bss: &BSplineSurface,
|
||||
param: SurfParamType,
|
||||
iso: f64,
|
||||
domain: Option<Extent2d>,
|
||||
) -> Result<BSplineCurve> {
|
||||
let opts = IsoCurveOptions {
|
||||
domain,
|
||||
uv_iso_curve: false,
|
||||
};
|
||||
Ok(bss.create_iso_parametric_curve(k, param, iso, opts)?.curve)
|
||||
}
|
||||
|
||||
/// `SmSurface::CalculateBoundingBox(domain, ...)`: the B-spline override; other kinds
|
||||
/// run the base class body.
|
||||
pub(super) fn calculate_bounding_box(
|
||||
@@ -613,15 +592,13 @@ impl PatchBoundaryBoundingPlanes {
|
||||
k: &Kernel,
|
||||
surface: &Surface,
|
||||
index: usize,
|
||||
) -> Result<BSplineCurve> {
|
||||
) -> Result<Curve> {
|
||||
let (spt, param) = self.iso_of(index);
|
||||
let bss = bspline_of(surface).ok_or(SolidError::null_pointer(OP_BOUNDARY))?;
|
||||
if matches!(surface.kind(), SurfaceKind::Plane(_)) {
|
||||
// the cast succeeds; the virtual call reaches the SmPlane override
|
||||
return Err(plane_iso_unported());
|
||||
}
|
||||
// make the curve (3D Tol SM_BIG_DOUBLE: not used)
|
||||
bspline_iso_curve(k, bss, spt, param, None)
|
||||
// SM_CAST_PTR(SmBSplineSurface, ..) and NER: the B-spline kinds
|
||||
bspline_of(surface).ok_or(SolidError::null_pointer(OP_BOUNDARY))?;
|
||||
// make the curve through the virtual (the SmPlane and SmSurfOfRevolution
|
||||
// overrides; 3D Tol SM_BIG_DOUBLE: not used by any of them)
|
||||
create_iso_parametric_curve(k, surface, spt, param, None)
|
||||
}
|
||||
|
||||
/// The UV end points of boundary `index` (`GetBoundaryUVEndPoints`).
|
||||
@@ -655,6 +632,12 @@ impl PatchBoundaryBoundingPlanes {
|
||||
|
||||
// local
|
||||
let bs = bspline_of(surface).ok_or(SolidError::null_pointer(OP_PLANES))?;
|
||||
// (the canonical form asks for the NURB through the virtual GetOrCreateGwNurbPointer,
|
||||
// which makes a plane's)
|
||||
let bs = match surface.kind() {
|
||||
SurfaceKind::Plane(p) => p.base_for_query(),
|
||||
_ => std::borrow::Cow::Borrowed(bs),
|
||||
};
|
||||
|
||||
// for every boundary
|
||||
for ii in 0..4 {
|
||||
@@ -714,7 +697,7 @@ impl PatchBoundaryBoundingPlanes {
|
||||
}
|
||||
|
||||
// test: Is boundary curve control polygon on computed plane
|
||||
let on_plane = bsp.is_on_plane(plane_base, plane_normal, tolerance, None)?;
|
||||
let on_plane = bsp.is_on_plane(k, plane_base, plane_normal, tolerance, None)?;
|
||||
|
||||
// low work - this curve not planar - go to next boundary curve
|
||||
if !on_plane.on_plane {
|
||||
@@ -723,7 +706,7 @@ impl PatchBoundaryBoundingPlanes {
|
||||
|
||||
// test: does surface lie completely on one side of the bounding plane
|
||||
let (is_separating, invert_normal) =
|
||||
check_bounding_plane_separating_halfspace(bs, plane_base, plane_normal)?;
|
||||
check_bounding_plane_separating_halfspace(&bs, plane_base, plane_normal)?;
|
||||
|
||||
// low work - surface xsects bounding plane
|
||||
if !is_separating {
|
||||
@@ -1368,7 +1351,7 @@ pub struct IsoBoundaryCurves {
|
||||
/// `rbCurvesAreCached`: the curves are (now) held by the cache.
|
||||
pub cached: bool,
|
||||
/// `rIsoCurves`: minimum u, minimum v, maximum u, maximum v iso curves.
|
||||
pub curves: [BSplineCurve; 4],
|
||||
pub curves: [Curve; 4],
|
||||
}
|
||||
|
||||
/// The Bezier decomposition of a surface (`SmSurfaceCache`). `O` is the caller's
|
||||
@@ -1407,7 +1390,7 @@ pub struct SurfaceCache<O> {
|
||||
/// `m_dTrimSubdivisionFactor`.
|
||||
pub trim_subdivision_factor: f64,
|
||||
/// `m_apIsoBoundaryCurves`: the cached natural boundary iso curves.
|
||||
iso_boundary_curves: Option<[BSplineCurve; 4]>,
|
||||
iso_boundary_curves: Option<[Curve; 4]>,
|
||||
/// `m_sSubdivisionSurfaces`: construction surfaces with their handles.
|
||||
subdivision_surfaces: Vec<(O, Surface)>,
|
||||
/// Names the halves of a split subdivision surface (see
|
||||
@@ -2422,7 +2405,7 @@ impl<O: Copy + PartialEq> SurfaceCache<O> {
|
||||
// UNPORTED(geom.tol): SmTol::GetZoneTol3d(const SmObject*) on an opaque handle. Every
|
||||
// arm it dispatches to is ported (topology::{vertex, edge, face::p2, edgeuse::p1}::tolerance,
|
||||
// Brep::tolerance) but each takes `&Brep` and none is in scope here; wire once this code
|
||||
// receives the owning B-rep
|
||||
// receives the owning B-rep (justified: findings.md "stubs naming green units")
|
||||
return Err(SolidError::unported(
|
||||
"SmTol::GetZoneTol3d(const SmObject*)",
|
||||
"geom.tol",
|
||||
@@ -2722,8 +2705,8 @@ impl<O: Copy + PartialEq> SurfaceCache<O> {
|
||||
let top_v = create_iso_parametric_curve(k, surface, SurfParamType::V, uv_top.y, d)?;
|
||||
|
||||
// 3D Udir and Vdir IsoParamCurve lengths
|
||||
let len = |c: &BSplineCurve, ivl: &Extent1d| -> Result<f64> {
|
||||
Ok(approximate_length(c, ivl, 8, false)?.0)
|
||||
let len = |c: &Curve, ivl: &Extent1d| -> Result<f64> {
|
||||
Ok(c.approximate_length(ivl, 8, false)?.0)
|
||||
};
|
||||
let bot_v_size = len(&bot_u, &v_domain)?;
|
||||
let bot_u_size = len(&bot_v, &u_domain)?;
|
||||
@@ -2850,6 +2833,25 @@ mod tests {
|
||||
use super::*;
|
||||
use crate::geom::extent3d::Extent3d;
|
||||
|
||||
#[test]
|
||||
fn plane_boundary_planes() {
|
||||
use crate::surface::plane::Plane;
|
||||
let k = Kernel::default();
|
||||
let dom = Extent2d::from_bounds(0.0, 0.0, 10.0, 6.0);
|
||||
let surface = Surface::from(Plane::new(
|
||||
Vec3::new(-5.0, -3.0, 0.0),
|
||||
Vec3::new(1.0, 0.0, 0.0),
|
||||
Vec3::new(0.0, 1.0, 0.0),
|
||||
Vec2::new(1.0, 1.0),
|
||||
&dom,
|
||||
));
|
||||
let mut bp = PatchBoundaryBoundingPlanes::new(dom);
|
||||
// the iso curve of a plane is its SmLine
|
||||
let c = bp.create_boundary_curve_for_index(&k, &surface, 0).unwrap();
|
||||
assert!(matches!(c.kind(), CurveKind::Line(_)));
|
||||
bp.compute_bounding_planes(&k, &surface).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn cull_keeps_first_and_last() {
|
||||
let mut a = vec![0.0, 1.0, 2.0, 3.0, 4.0];
|
||||
|
||||
@@ -101,6 +101,8 @@ enum
|
||||
const double REJECTED = -2.0;
|
||||
// Record of an op whose surface of revolution could not be made.
|
||||
const double NO_SURFACE = -3.0;
|
||||
// Trim curve entry for a NULL curve (in place of `GetType()` and the curve data).
|
||||
const double NULL_CURVE = -4.0;
|
||||
|
||||
struct Bad : std::runtime_error
|
||||
{
|
||||
@@ -771,8 +773,18 @@ void run(Rd& rd, std::vector<double>& o)
|
||||
o.push_back(md);
|
||||
o.push_back(mv);
|
||||
o.push_back((double)uvs.GetSize());
|
||||
// per curve: its GetType() then its data; a NULL entry (a failed SM_CAST_PTR
|
||||
// upstream) is the sentinel NULL_CURVE
|
||||
for (ULONG i = 0; i < uvs.GetSize(); i++)
|
||||
{
|
||||
if (uvs[i] == NULL)
|
||||
{
|
||||
o.push_back(NULL_CURVE);
|
||||
continue;
|
||||
}
|
||||
o.push_back((double)uvs[i]->GetType());
|
||||
put_curve(o, uvs[i]);
|
||||
}
|
||||
}
|
||||
for (ULONG i = 0; i < uvs.GetSize(); i++)
|
||||
delete uvs[i];
|
||||
|
||||
@@ -5293,6 +5293,36 @@ shell traversal; PR #88's cache-reset scans keep their existing behavior.
|
||||
`SurfaceIntersector::adv_compute_singularity_point`, and `ComputePointValues` calls it
|
||||
when the base's `advanced` flag (set by `AdvSurfaceIntersector::new`) is on. All 6
|
||||
cases now pass bit-identical; p2/p3/p4/adv/p5 have 0 failures.
|
||||
- **Second review (PR #140): iso curves of the surface cache wired.** The two
|
||||
`UNPORTED(surface.surface_cache_p1)` stubs (`SmPlane::CreateIsoParametricCurve`,
|
||||
`SmSurfOfRevolution::CreateIsoParametricCurve`) were tagged with a green unit while the
|
||||
callees were ported (`surface.plane_p1`, `surface.surf_of_revolution_p1`). They are now
|
||||
wired the way PR #270 does it (its `surface_cache/p1.rs`, the `Curve` storage of the iso
|
||||
curves, `copy_as_bspline` for upstream's `new SmBSplineCurve(*p)` copies, and the
|
||||
`&Curve` boundary signatures of the tracer, silhouette and surface intersector p2/p3,
|
||||
taken over unchanged so the two PRs merge cleanly), **including the plane branch of
|
||||
`GetIsoBoundaryCurves`** that #270 keeps stubbed because of
|
||||
`intersect.surface_intersector_p5` `gen0072`. On this branch `gen0072` passes
|
||||
bit-identical (157 values): its missing touching-point curves are the
|
||||
`ComputeSingularityPoint` dispatch gap fixed above. `intersect.surface_intersector_p5`
|
||||
goes from 1009 to 1471 passes with 0 failures (its runner now writes the B-spline part
|
||||
of a `Line` / `Ellipse` output curve, as #270's does, after its type code).
|
||||
The plane and revolution `DropAndTrimCurve` cases now trace past the iso curves and
|
||||
stop at a real gap: `SmCrvOnSurf` over a non-B-spline surface
|
||||
(`surface_drop_curve.rs`, the `curve.crv_on_surf` port holds only a `BSplineSurface`;
|
||||
an `SmPlane`'s virtual evaluators differ from its B-spline part, so wrapping the
|
||||
plane's B-spline would not be faithful). These defer on `curve.crv_on_surf`.
|
||||
- **Second review (PR #140): curve_class_p2 stubs not wired.** The `ReSet` and
|
||||
`ConnectIntervals` stubs in `intersect/curve_class/p4.rs` are deliberate: wiring them
|
||||
breaks `topology.brep_p2`'s `merge_plane10_line` and 4 squeeze cases of
|
||||
`intersect.curve_class_p4` (see that unit's section). The deferrals behind them are
|
||||
counted as such in the unit's notes.
|
||||
- **Second review (PR #140): coverage.** The generator is back to main's buckets
|
||||
(`88..=98` iso, `99` plane line), so every generated case keeps its inputs; the wider
|
||||
trim generator runs as 400 fixed-seed cases `trim0000..trim0399` appended after the
|
||||
1500. The `Trim` record now carries each UV curve's `GetType()` (line vs B-spline is
|
||||
compared), and the shim writes the sentinel `NULL_CURVE` for a `NULL` entry instead of
|
||||
dereferencing it.
|
||||
## topology.vertex (`SmVertex`, 2026-10-15; partial, no disagreements)
|
||||
|
||||
- **Vertex use lists.** `topology::Vertex` gained `vertexuses` (`m_pList`, upstream list
|
||||
|
||||
+6
-6
File diff suppressed because one or more lines are too long
@@ -130,28 +130,20 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "plane_plane_coincident",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/blend.fillet_geom_p2/cases.json#16 (upstream source/SMLib/src/SmFilletGeom.cpp)",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "plane_plane_coincident_no_nurb",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/blend.fillet_geom_p2/cases.json#17 (upstream source/SMLib/src/SmFilletGeom.cpp)",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -199,8 +191,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "cylinder_plane_lines_ref",
|
||||
@@ -211,8 +203,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "cylinder_plane_ellipse",
|
||||
@@ -294,16 +286,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "bspline_plane",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/blend.fillet_geom_p2/cases.json#32 (upstream source/SMLib/src/SmFilletGeom.cpp)",
|
||||
"values_compared": 0
|
||||
"values_compared": 96
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -471,8 +459,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0003",
|
||||
@@ -507,8 +495,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0007",
|
||||
@@ -539,8 +527,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0010",
|
||||
@@ -579,8 +567,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0014",
|
||||
@@ -590,28 +578,20 @@
|
||||
"values_compared": 0
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0015",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959609",
|
||||
"values_compared": 0
|
||||
"values_compared": 861
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0016",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959610",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -698,16 +678,12 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0026",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959620",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -778,16 +754,12 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0034",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959628",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -823,8 +795,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0038",
|
||||
@@ -854,16 +826,12 @@
|
||||
"values_compared": 456
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0041",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959635",
|
||||
"values_compared": 0
|
||||
"values_compared": 96
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -875,8 +843,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0043",
|
||||
@@ -995,8 +963,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0056",
|
||||
@@ -1006,16 +974,12 @@
|
||||
"values_compared": 0
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0057",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959651",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1098,16 +1062,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0067",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959661",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1119,8 +1079,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0069",
|
||||
@@ -1215,8 +1175,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0079",
|
||||
@@ -1234,16 +1194,12 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0081",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959675",
|
||||
"values_compared": 0
|
||||
"values_compared": 7791
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1282,16 +1238,12 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0086",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959680",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -1386,16 +1338,12 @@
|
||||
"values_compared": 0
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0096",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959690",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1406,28 +1354,20 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0098",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959692",
|
||||
"values_compared": 0
|
||||
"values_compared": 2796
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0099",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959693",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -1482,16 +1422,12 @@
|
||||
"values_compared": 0
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0105",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959699",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1651,8 +1587,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0123",
|
||||
@@ -1791,8 +1727,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0137",
|
||||
@@ -1811,8 +1747,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0139",
|
||||
@@ -1839,8 +1775,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0142",
|
||||
@@ -1947,8 +1883,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0154",
|
||||
@@ -1998,28 +1934,20 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0160",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959754",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0161",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959755",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -2094,28 +2022,20 @@
|
||||
"values_compared": 3
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0170",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959764",
|
||||
"values_compared": 0
|
||||
"values_compared": 231
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0171",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959765",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -2162,16 +2082,12 @@
|
||||
"values_compared": 771
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0177",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959771",
|
||||
"values_compared": 0
|
||||
"values_compared": 861
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2199,8 +2115,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0181",
|
||||
@@ -2243,8 +2159,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0186",
|
||||
@@ -2262,16 +2178,12 @@
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0188",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959782",
|
||||
"values_compared": 0
|
||||
"values_compared": 231
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -2478,16 +2390,12 @@
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0212",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959806",
|
||||
"values_compared": 0
|
||||
"values_compared": 501
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2534,16 +2442,12 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0218",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959812",
|
||||
"values_compared": 0
|
||||
"values_compared": 276
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2591,8 +2495,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0224",
|
||||
@@ -2610,28 +2514,20 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0226",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959820",
|
||||
"values_compared": 0
|
||||
"values_compared": 321
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0227",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959821",
|
||||
"values_compared": 0
|
||||
"values_compared": 1446
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2719,8 +2615,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0236",
|
||||
@@ -2738,16 +2634,12 @@
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0238",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959832",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2771,8 +2663,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0241",
|
||||
@@ -2807,8 +2699,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0245",
|
||||
@@ -2987,8 +2879,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0265",
|
||||
@@ -3107,8 +2999,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::DoPointIntersection",
|
||||
"unit": "intersect.surface_intersector_p4"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0278",
|
||||
@@ -3223,8 +3115,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0290",
|
||||
@@ -3234,16 +3126,12 @@
|
||||
"values_compared": 0
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0291",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959885",
|
||||
"values_compared": 0
|
||||
"values_compared": 60
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3274,16 +3162,12 @@
|
||||
"values_compared": 0
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0295",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9207378515203959889",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3327,16 +3211,16 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 131,
|
||||
"cases_deferred": 102,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 219,
|
||||
"cases_passed": 248,
|
||||
"cases_total": 350,
|
||||
"deferred_by_unit": {
|
||||
"curve.crv_on_surf": 2,
|
||||
"curve.iso_curve": 6,
|
||||
"intersect.surface_drop_lib_p3": 33,
|
||||
"intersect.surface_intersector_p2": 23,
|
||||
"intersect.surface_intersector_p4": 19,
|
||||
"surface.surface_cache_p1": 54
|
||||
"intersect.surface_intersector_p2": 32,
|
||||
"intersect.surface_intersector_p4": 29
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
|
||||
@@ -90,16 +90,12 @@
|
||||
"values_compared": 32
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "boundary_degenerate_interval_on_surface",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/intersect.surface_drop_curve/cases.json#11 (upstream tests/SM_API_test/src/TestSmCurves.cpp:424 (TestSmCreateRectangle: 10 x 6 rectangle at the origin))",
|
||||
"values_compared": 0
|
||||
"values_compared": 30
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1462,16 +1458,12 @@
|
||||
"values_compared": 63
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0133",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9707850954747150882",
|
||||
"values_compared": 0
|
||||
"values_compared": 231
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1706,16 +1698,12 @@
|
||||
"values_compared": 121
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0163",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9707850954747150912",
|
||||
"values_compared": 0
|
||||
"values_compared": 95
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1775,8 +1763,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurface (non-B-spline) in SmCrvOnSurf",
|
||||
"unit": "curve.crv_on_surf"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0171",
|
||||
@@ -2138,16 +2126,12 @@
|
||||
"values_compared": 262
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0216",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9707850954747150965",
|
||||
"values_compared": 0
|
||||
"values_compared": 51
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2670,16 +2654,12 @@
|
||||
"values_compared": 178
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0282",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9707850954747151031",
|
||||
"values_compared": 0
|
||||
"values_compared": 200
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3059,8 +3039,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurface (non-B-spline) in SmCrvOnSurf",
|
||||
"unit": "curve.crv_on_surf"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0330",
|
||||
@@ -3134,16 +3114,12 @@
|
||||
"values_compared": 56
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0339",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9707850954747151088",
|
||||
"values_compared": 0
|
||||
"values_compared": 68
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3759,8 +3735,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurface (non-B-spline) in SmCrvOnSurf",
|
||||
"unit": "curve.crv_on_surf"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0416",
|
||||
@@ -3870,16 +3846,12 @@
|
||||
"values_compared": 180
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0429",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9707850954747151178",
|
||||
"values_compared": 0
|
||||
"values_compared": 223
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -4090,16 +4062,12 @@
|
||||
"values_compared": 115
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0456",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=9707850954747151205",
|
||||
"values_compared": 0
|
||||
"values_compared": 95
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -4239,8 +4207,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurface (non-B-spline) in SmCrvOnSurf",
|
||||
"unit": "curve.crv_on_surf"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0474",
|
||||
@@ -4459,14 +4427,14 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 20,
|
||||
"cases_deferred": 12,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 527,
|
||||
"cases_passed": 535,
|
||||
"cases_total": 547,
|
||||
"deferred_by_unit": {
|
||||
"curve.crv_on_surf": 4,
|
||||
"intersect.curve_class_p2": 5,
|
||||
"intersect.surface_drop_lib_p3": 3,
|
||||
"surface.surface_cache_p1": 12
|
||||
"intersect.surface_drop_lib_p3": 3
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -210,16 +210,12 @@
|
||||
"values_compared": 923
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "do_trace_plane",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/intersect.surface_tracer/edge_cases.json#26 (upstream source/SMLib/src/SmSurfaceTracer.cpp:1403)",
|
||||
"values_compared": 0
|
||||
"values_compared": 83
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -726,16 +722,12 @@
|
||||
"values_compared": 243
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0063",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12567469113176183492",
|
||||
"values_compared": 0
|
||||
"values_compared": 178
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -918,16 +910,12 @@
|
||||
"values_compared": 262
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0086",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12567469113176183515",
|
||||
"values_compared": 0
|
||||
"values_compared": 113
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1138,16 +1126,12 @@
|
||||
"values_compared": 151
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0113",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12567469113176183542",
|
||||
"values_compared": 0
|
||||
"values_compared": 373
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2970,16 +2954,12 @@
|
||||
"values_compared": 548
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0339",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12567469113176183768",
|
||||
"values_compared": 0
|
||||
"values_compared": 297
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3463,13 +3443,12 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 11,
|
||||
"cases_deferred": 6,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 416,
|
||||
"cases_passed": 421,
|
||||
"cases_total": 427,
|
||||
"deferred_by_unit": {
|
||||
"intersect.surface_drop_lib_p3": 6,
|
||||
"surface.surface_cache_p1": 5
|
||||
"intersect.surface_drop_lib_p3": 6
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
|
||||
@@ -11806,16 +11806,12 @@
|
||||
"values_compared": 59
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0246",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12145710358005093856",
|
||||
"values_compared": 0
|
||||
"values_compared": 81
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -22163,13 +22159,12 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 130,
|
||||
"cases_deferred": 129,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 2575,
|
||||
"cases_passed": 2576,
|
||||
"cases_total": 2705,
|
||||
"deferred_by_unit": {
|
||||
"intersect.surface_drop_lib_p3": 129,
|
||||
"surface.surface_cache_p1": 1
|
||||
"intersect.surface_drop_lib_p3": 129
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
|
||||
@@ -898,28 +898,20 @@
|
||||
"values_compared": 6
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gsi_plane_coincident",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/surface.plane_p2/edge.json#21",
|
||||
"values_compared": 0
|
||||
"values_compared": 114
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gsi_bspline",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/surface.plane_p2/edge.json#22",
|
||||
"values_compared": 0
|
||||
"values_compared": 45
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -8706,16 +8698,12 @@
|
||||
"values_compared": 7
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0869",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12145709258493466268",
|
||||
"values_compared": 0
|
||||
"values_compared": 114
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -8894,16 +8882,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0892",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12145709258493466291",
|
||||
"values_compared": 0
|
||||
"values_compared": 6
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -13602,16 +13586,12 @@
|
||||
"values_compared": 6
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen1480",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12145709258493466879",
|
||||
"values_compared": 0
|
||||
"values_compared": 114
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -14254,16 +14234,12 @@
|
||||
"values_compared": 54
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen1561",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12145709258493466960",
|
||||
"values_compared": 0
|
||||
"values_compared": 114
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -15546,16 +15522,12 @@
|
||||
"values_compared": 3
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen1722",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12145709258493467121",
|
||||
"values_compared": 0
|
||||
"values_compared": 114
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -17166,16 +17138,12 @@
|
||||
"values_compared": 6
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen1924",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=12145709258493467323",
|
||||
"values_compared": 0
|
||||
"values_compared": 114
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -17779,17 +17747,15 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 8,
|
||||
"cases_deferred": 0,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 2210,
|
||||
"cases_passed": 2218,
|
||||
"cases_total": 2218,
|
||||
"deferred_by_unit": {
|
||||
"surface.surface_cache_p1": 8
|
||||
},
|
||||
"deferred_by_unit": {},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
"rel_tol": 1e-9,
|
||||
"seeds": 16,
|
||||
"status": "partial",
|
||||
"status": "green",
|
||||
"unit": "surface.plane_p2"
|
||||
}
|
||||
|
||||
@@ -2227,8 +2227,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0011",
|
||||
@@ -2319,8 +2319,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0022",
|
||||
@@ -2370,16 +2370,12 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0028",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=4440997136722950235",
|
||||
"values_compared": 0
|
||||
"values_compared": 11
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2415,8 +2411,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0033",
|
||||
@@ -2651,8 +2647,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0062",
|
||||
@@ -3067,8 +3063,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0113",
|
||||
@@ -3343,8 +3339,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0147",
|
||||
@@ -3403,8 +3399,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0154",
|
||||
@@ -3583,8 +3579,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0176",
|
||||
@@ -3595,8 +3591,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurface::DropCurve",
|
||||
"unit": "intersect.surface_drop_lib_p3"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0177",
|
||||
@@ -4915,8 +4911,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0341",
|
||||
@@ -5022,16 +5018,12 @@
|
||||
"values_compared": 120
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0354",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=4440997136722950561",
|
||||
"values_compared": 0
|
||||
"values_compared": 11
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5107,8 +5099,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0364",
|
||||
@@ -5827,8 +5819,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0453",
|
||||
@@ -5854,16 +5846,12 @@
|
||||
"values_compared": 331
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0456",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=4440997136722950663",
|
||||
"values_compared": 0
|
||||
"values_compared": 11
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5906,16 +5894,12 @@
|
||||
"values_compared": 3149
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0462",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=4440997136722950669",
|
||||
"values_compared": 0
|
||||
"values_compared": 11
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6215,8 +6199,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0500",
|
||||
@@ -6275,8 +6259,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0507",
|
||||
@@ -6431,8 +6415,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0526",
|
||||
@@ -6963,8 +6947,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0592",
|
||||
@@ -7303,8 +7287,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0634",
|
||||
@@ -7451,8 +7435,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0652",
|
||||
@@ -7871,8 +7855,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0704",
|
||||
@@ -7939,8 +7923,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0712",
|
||||
@@ -8143,8 +8127,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0737",
|
||||
@@ -8619,8 +8603,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0796",
|
||||
@@ -8790,16 +8774,12 @@
|
||||
"values_compared": 5
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0817",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=4440997136722951024",
|
||||
"values_compared": 0
|
||||
"values_compared": 11
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -9035,8 +9015,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0847",
|
||||
@@ -9255,8 +9235,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0874",
|
||||
@@ -9307,8 +9287,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmSurfOfRevolution::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmIsoCurve::SmIsoCurve (non-B-spline surface)",
|
||||
"unit": "curve.iso_curve"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0880",
|
||||
@@ -9471,13 +9451,14 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 33,
|
||||
"cases_deferred": 28,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 1134,
|
||||
"cases_passed": 1139,
|
||||
"cases_total": 1167,
|
||||
"deferred_by_unit": {
|
||||
"intersect.surface_intersector_p2": 3,
|
||||
"surface.surface_cache_p1": 30
|
||||
"curve.iso_curve": 23,
|
||||
"intersect.surface_drop_lib_p3": 1,
|
||||
"intersect.surface_intersector_p2": 4
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
|
||||
@@ -662,16 +662,12 @@
|
||||
"values_compared": 96
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "plane_rect_nth",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/surface.surface_cache_p2/cases.json#82 (upstream SM_API_test TestSmCurves.cpp:424 (TestSmCreateRectangle: 10 x 6 rectangle at the origin, as a plane))",
|
||||
"values_compared": 0
|
||||
"values_compared": 26
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -722,16 +718,12 @@
|
||||
"values_compared": 96
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "plane_hexagon_nth",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/surface.surface_cache_p2/cases.json#89 (upstream SM_API_test TestSmCurves.cpp:462 (TestSmCreateRegularPolygon: radius 5 hexagon plane))",
|
||||
"values_compared": 0
|
||||
"values_compared": 26
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -782,16 +774,12 @@
|
||||
"values_compared": 96
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "plane_far_thin_nth",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/surface.surface_cache_p2/cases.json#96 (upstream SM_API_test TestSmCurves.cpp:424 (TestSmCreateRectangle: 10 x 6 rectangle at the origin, as a plane))",
|
||||
"values_compared": 0
|
||||
"values_compared": 26
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1138,16 +1126,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0035",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453022",
|
||||
"values_compared": 0
|
||||
"values_compared": 19
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1174,16 +1158,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0039",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453026",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1202,16 +1182,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0042",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453029",
|
||||
"values_compared": 0
|
||||
"values_compared": 51
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1238,16 +1214,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0046",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453033",
|
||||
"values_compared": 0
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1458,16 +1430,12 @@
|
||||
"values_compared": 7
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0073",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453060",
|
||||
"values_compared": 0
|
||||
"values_compared": 10
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1678,16 +1646,12 @@
|
||||
"values_compared": 44
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0100",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453087",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1890,16 +1854,12 @@
|
||||
"values_compared": 7
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0126",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453113",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1950,16 +1910,12 @@
|
||||
"values_compared": 33
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0133",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453120",
|
||||
"values_compared": 0
|
||||
"values_compared": 19
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2050,16 +2006,12 @@
|
||||
"values_compared": 270
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0145",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453132",
|
||||
"values_compared": 0
|
||||
"values_compared": 26
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2118,16 +2070,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0153",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453140",
|
||||
"values_compared": 0
|
||||
"values_compared": 7
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2378,16 +2326,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0185",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453172",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2406,16 +2350,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0188",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453175",
|
||||
"values_compared": 0
|
||||
"values_compared": 4
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2786,16 +2726,12 @@
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0235",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453222",
|
||||
"values_compared": 0
|
||||
"values_compared": 10
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2926,16 +2862,12 @@
|
||||
"values_compared": 19
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0252",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453239",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3010,16 +2942,12 @@
|
||||
"values_compared": 10
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0262",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453249",
|
||||
"values_compared": 0
|
||||
"values_compared": 16
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3070,16 +2998,12 @@
|
||||
"values_compared": 90
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0269",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453256",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3122,16 +3046,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0275",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453262",
|
||||
"values_compared": 0
|
||||
"values_compared": 16
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3686,16 +3606,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0345",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453332",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3794,16 +3710,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0358",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453345",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -3814,16 +3726,12 @@
|
||||
"values_compared": 17
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0360",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453347",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -4186,16 +4094,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0406",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453393",
|
||||
"values_compared": 0
|
||||
"values_compared": 16
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -4614,28 +4518,20 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0459",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453446",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0460",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453447",
|
||||
"values_compared": 0
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -4998,16 +4894,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0506",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453493",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5074,16 +4966,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0515",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453502",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5126,16 +5014,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0521",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453508",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5298,28 +5182,20 @@
|
||||
"values_compared": 4
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0542",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453529",
|
||||
"values_compared": 0
|
||||
"values_compared": 19
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0543",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453530",
|
||||
"values_compared": 0
|
||||
"values_compared": 7
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5378,16 +5254,12 @@
|
||||
"values_compared": 4
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0551",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453538",
|
||||
"values_compared": 0
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5470,16 +5342,12 @@
|
||||
"values_compared": 19
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0562",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453549",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5498,16 +5366,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0565",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453552",
|
||||
"values_compared": 0
|
||||
"values_compared": 19
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5750,28 +5614,20 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0596",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453583",
|
||||
"values_compared": 0
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0597",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453584",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5782,16 +5638,12 @@
|
||||
"values_compared": 4
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0599",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453586",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5906,16 +5758,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0614",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453601",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -5926,16 +5774,12 @@
|
||||
"values_compared": 54
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0616",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453603",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6034,16 +5878,12 @@
|
||||
"values_compared": 34
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0629",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453616",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6166,28 +6006,20 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0645",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453632",
|
||||
"values_compared": 0
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0646",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453633",
|
||||
"values_compared": 0
|
||||
"values_compared": 76
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6310,16 +6142,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0662",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453649",
|
||||
"values_compared": 0
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6410,16 +6238,12 @@
|
||||
"values_compared": 4
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0674",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453661",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6574,28 +6398,20 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0694",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453681",
|
||||
"values_compared": 0
|
||||
"values_compared": 7
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0695",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453682",
|
||||
"values_compared": 0
|
||||
"values_compared": 101
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6622,16 +6438,12 @@
|
||||
"values_compared": 183
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0699",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453686",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6658,16 +6470,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0703",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453690",
|
||||
"values_compared": 0
|
||||
"values_compared": 19
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6742,16 +6550,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0713",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453700",
|
||||
"values_compared": 0
|
||||
"values_compared": 7
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -6866,16 +6670,12 @@
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0728",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453715",
|
||||
"values_compared": 0
|
||||
"values_compared": 13
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -7174,28 +6974,20 @@
|
||||
"values_compared": 10
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0766",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453753",
|
||||
"values_compared": 0
|
||||
"values_compared": 4
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0767",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453754",
|
||||
"values_compared": 0
|
||||
"values_compared": 51
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -7382,16 +7174,12 @@
|
||||
"values_compared": 220
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0791",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500106336313453778",
|
||||
"values_compared": 0
|
||||
"values_compared": 12
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -7459,13 +7247,12 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 54,
|
||||
"cases_deferred": 1,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 851,
|
||||
"cases_passed": 904,
|
||||
"cases_total": 905,
|
||||
"deferred_by_unit": {
|
||||
"intersect.curve_class_p2": 1,
|
||||
"surface.surface_cache_p1": 53
|
||||
"intersect.curve_class_p2": 1
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
|
||||
@@ -298,16 +298,12 @@
|
||||
"values_compared": 66
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0037",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801824813",
|
||||
"values_compared": 0
|
||||
"values_compared": 1219
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -606,16 +602,12 @@
|
||||
"values_compared": 384
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0075",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801824851",
|
||||
"values_compared": 0
|
||||
"values_compared": 85
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -722,16 +714,12 @@
|
||||
"values_compared": 719
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0089",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801824865",
|
||||
"values_compared": 0
|
||||
"values_compared": 1639
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2070,16 +2058,12 @@
|
||||
"values_compared": 66
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0257",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801825033",
|
||||
"values_compared": 0
|
||||
"values_compared": 854333
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2162,16 +2146,12 @@
|
||||
"values_compared": 28669
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0268",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801825044",
|
||||
"values_compared": 0
|
||||
"values_compared": 131
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2358,16 +2338,12 @@
|
||||
"values_compared": 136
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0292",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801825068",
|
||||
"values_compared": 0
|
||||
"values_compared": 111511
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -2898,16 +2874,12 @@
|
||||
"values_compared": 246
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0359",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801825135",
|
||||
"values_compared": 0
|
||||
"values_compared": 3383
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -4558,16 +4530,12 @@
|
||||
"values_compared": 146
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "gen0566",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "generated:seed=17500105236801825342",
|
||||
"values_compared": 0
|
||||
"values_compared": 12069
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -4835,17 +4803,15 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 8,
|
||||
"cases_deferred": 0,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 592,
|
||||
"cases_passed": 600,
|
||||
"cases_total": 600,
|
||||
"deferred_by_unit": {
|
||||
"surface.surface_cache_p1": 8
|
||||
},
|
||||
"deferred_by_unit": {},
|
||||
"max_rel_err": 0.0,
|
||||
"pass": true,
|
||||
"rel_tol": 1e-9,
|
||||
"seeds": 16,
|
||||
"status": "partial",
|
||||
"status": "green",
|
||||
"unit": "surface.surface_cache_p3"
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -822,16 +822,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_cone_e1",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#46 (upstream upstream/TestFiles/pt_TestFiles/cone.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -858,16 +854,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_cone_e3",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#50 (upstream upstream/TestFiles/pt_TestFiles/cone.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -966,16 +958,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_ellips_ts2_e0",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#62 (upstream upstream/TestFiles/pt_TestFiles/ellips_ts2.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -987,8 +975,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmFace::Notify",
|
||||
"unit": "topology.face_p3"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_ellips_ts2_e1",
|
||||
@@ -1006,16 +994,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_ellips_ts2_e2",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#66 (upstream upstream/TestFiles/pt_TestFiles/ellips_ts2.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1026,16 +1010,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_ellips_ts2_e3",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#68 (upstream upstream/TestFiles/pt_TestFiles/ellips_ts2.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -1286,16 +1266,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_extrude_e0",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#98 (upstream upstream/TestFiles/pt_TestFiles/surf_extrude.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1306,16 +1282,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_extrude_e1",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#100 (upstream upstream/TestFiles/pt_TestFiles/surf_extrude.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1326,16 +1298,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_extrude_e2",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#102 (upstream upstream/TestFiles/pt_TestFiles/surf_extrude.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1346,16 +1314,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_extrude_e3",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#104 (upstream upstream/TestFiles/pt_TestFiles/surf_extrude.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -1378,16 +1342,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_rev_e0",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#107 (upstream upstream/TestFiles/pt_TestFiles/surf_rev.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1399,8 +1359,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmFace::Notify",
|
||||
"unit": "topology.face_p3"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_rev_e1",
|
||||
@@ -1418,16 +1378,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_rev_e2",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#111 (upstream upstream/TestFiles/pt_TestFiles/surf_rev.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1438,16 +1394,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_rev_e3",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#113 (upstream upstream/TestFiles/pt_TestFiles/surf_rev.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -1471,8 +1423,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_sphere150_e0",
|
||||
@@ -1490,16 +1442,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_sphere150_e1",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#118 (upstream upstream/TestFiles/pt_TestFiles/surf_sphere150.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1511,8 +1459,8 @@
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
"symbol": "SmSurfaceIntersector::ComputePointValues",
|
||||
"unit": "intersect.surface_intersector_p2"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_sphere150_e2",
|
||||
@@ -1530,16 +1478,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_surf_sphere150_e3",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#122 (upstream upstream/TestFiles/pt_TestFiles/surf_sphere150.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
@@ -1730,16 +1674,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_vase_rev_e1",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#145 (upstream upstream/TestFiles/pt_TestFiles/vase_rev.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -1750,16 +1690,12 @@
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"deferred": {
|
||||
"symbol": "SmPlane::CreateIsoParametricCurve",
|
||||
"unit": "surface.surface_cache_p1"
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
"name": "mate_vase_rev_e2",
|
||||
"outcome": "deferred",
|
||||
"pass": false,
|
||||
"outcome": "pass",
|
||||
"pass": true,
|
||||
"source": "fixture:fixtures/topology.brep_p2/ops.json#147 (upstream upstream/TestFiles/pt_TestFiles/vase_rev.smb)",
|
||||
"values_compared": 0
|
||||
"values_compared": 2
|
||||
},
|
||||
{
|
||||
"max_rel_err": 0.0,
|
||||
@@ -14763,17 +14699,17 @@
|
||||
}
|
||||
],
|
||||
"cases_both_errored": 0,
|
||||
"cases_deferred": 272,
|
||||
"cases_deferred": 256,
|
||||
"cases_failed": 0,
|
||||
"cases_passed": 1437,
|
||||
"cases_passed": 1453,
|
||||
"cases_total": 1709,
|
||||
"deferred_by_unit": {
|
||||
"intersect.curve_class_p2": 1,
|
||||
"intersect.surface_drop_lib_p3": 85,
|
||||
"intersect.surface_intersector_p2": 2,
|
||||
"query.brep": 93,
|
||||
"surface.surface_cache_p1": 20,
|
||||
"topology.face_p2": 19,
|
||||
"topology.face_p3": 16,
|
||||
"topology.face_p3": 18,
|
||||
"topology.face_p4": 38
|
||||
},
|
||||
"max_rel_err": 0.0,
|
||||
|
||||
Reference in New Issue
Block a user