Closed jordig100 closed 3 years ago
I didn't pick up on the fact that the statement in the spec inferred that anything less that minlen was effectively "zero length". I was treating a truly zero length beam as special case that the producer should not produce and a consumer should probably reject. We could move this to a positive test case or delete it all together as we have other test cases that exercise beam lengths less than minlen.
Before resolving this issue, we should first clarify the inconsistency I detected in the spec, tracked in issue 33 in the spec_beamlattice repository: https://github.com/3MFConsortium/spec_beamlattice/issues/33
Depending on the decission in that issue, these reported negative test cases may be correct or wrong. I also found some other positive test cases that should be reviewed because there are some beams with length < minlength, and also depending on the decission after reviweing the spec they may become invalid. The current problem is that we have positive and negative test cases with beams with length < minlength, and we do not know yet if we have to reject or ignore those invalid beams.
I will try to identify all the positive test cases with this issue and report them here, because maybe the intent of those 3mf was not to test this casuistic about the length of the beams.
According to the resolution of https://github.com/3MFConsortium/spec_beamlattice/issues/33, the producer now SHOULD NOT produce beams with length < minlength, so the N_BXX_2503_01.3mf should be removed because now it will be accepted, but the wrong beams will be just ignored.
Then, with the change in the spec there is a positive test case that I think becomes invalid, so we could move it to the negative test cases: the P_2003_01.3mf https://github.com/3MFConsortium/test_suites/blob/develop/suite7_beam/positive_test_cases/P_BXX_2003_01.3mf.
In that case, there are beams with length < minlength, which are not a problem, but there is an object whose ALL beams have a length < minlength and it has no triangles, so it ends up defining an empty volume, and I think this is not allowed in the spec (an object must have either some beam or at least 4 triangles to define a certain volume). This is the problematic object:
Will need to investigate P_2003_01 and P_2003_02 as neither test case should result in an empty volume, so perhaps there is some test case implementation bug.
01 – Define a beam lattice structure with graduated lengths of beams, demonstrate different minlength cutoffs.
02 – Define a beam lattice structure where all beams are smaller than minlegth. Include a triangular mesh representation so something renders
Test case 2503_01 was moved to a positive test case (P_BXX_2003_03) as the test cases should not be rejected if it has a zero length beam as long as there is other content to render, which there is.
Test cases P_BXX_2003_01 and P_BXX_2003_02 were investigated and the do NOT result in a empty volume. 2003_01 has beams longer the minlen and 2003_02 has a triangular mesh to render.
The expected develop branch of the test_suites repository has an expected results thumbnail album where the rending for the test cases noted above can be viewed.
The negative test case definition: 01 – Define zero length beam with the beam elements v1 and v2 attributes pointed different vertices
Spec definition: “A producer MUST specify the minimal length of all beams in the lattice. The producer MUST NOT produce zero length beams (i.e. shorter than minlength). The consumer MUST ignore all beams with length shorter than minlength.”
So the test case should be a positive test case with just the beam not showing up.