Loading ...
Sorry, an error occurred while loading the content.

Re: Meta Domain Testing Was Re: [XP] Tests for a Simulator

Expand Messages
  • Michael Schneider
    ... That is a good question that impacts our unit tests, and Meta-Real and Real-Meta. The way we approach this is to say correct to within a tolerance, so a
    Message 1 of 3 , May 3 11:03 AM
    • 0 Attachment
      Andy Glew wrote:

      > > I can understand your concern. We develop CAD/CAM systems with
      > > is a meta representation of real 3d geometry, just as your simulators
      > > is a meta representation for real architecture.
      > >
      > > When you are working in Meta land, there are two sets of test to run
      > > ** Traditional XP: Unit test the functions that you write.
      > > ** Test the Mapping of the real domain to your meta domain. This is where
      > > traditional system testing can break down.
      >
      > Thanks, Mike, this is a useful distinction.
      >
      > Although I cannot help but wonder - I forgot to mention in the original post
      > - if approximate answers are not another, orthogonal, issue.
      >
      > Q: in CAD/CAM 3D, are your answers approximate? Or, are they
      > supposed to be exact and reproducible?
      >

      That is a good question that impacts our unit tests, and Meta-Real and
      Real-Meta.

      The way we approach this is to say correct to within a tolerance, so
      a functional test in which a CAD model is a meta rep of a "Real" solid
      is compared to within a tolerance.

      So our results are always measured to within a tolerance, and there
      are many types of tolerances used within the domain.

      Ex. For selection, if you are within several pixels of a vertex, the
      "picking" tolerance would map to the vertex as the selected item,
      while surface-to-surface intersection tests would use a much
      tighter tolerance.

      So the validity of every operation is:

      Post Contitions : transform_by_function(SystemState@pre) +- Tolerance_for_op

      >
      > Hmm... I suppose that in the real world interference between solid
      > objects is exact - it either happens or does not -

      That is true, you are either modeling the part, or you are wasting time. If you
      have an assembly of all the parts of an automobile, and you are doing intersection
      checking to make sure the product configuration is correct, you either have a
      representation of the car, that you can apply useful mathmatical operations
      on, or you are not doing your job......

      > but that in CAD/CAM
      > you may be using an approximation like a convex hull for quick computation.

      It depends on the sytem, we stay at full system tolerance for all math operations,
      but may loosen tolerences for quick bounding-Box Checks for graphics...

      >
      > Q: can you always fall back to a guaranteed exact computation, or is that
      > infeasible even for testing?
      >

      There is no such thing as guaranteed exact :-) for us, only within
      a tolerance for an operation. The accumulated tolerance error in Meta-land
      is often where Meta-Real world mapping breaks down. For performance,
      we do double arithmetic (C/C++), You could use BigInt /BigFloat for exact,
      but you would take a big performance hit.

      This is an interesting discussion, it is a problem we deal with daily, any
      new breakthroughs are always welcome :-)

      >
      > To Post a message, send it to: extremeprogramming@...
      >
      > To Unsubscribe, send a blank message to: extremeprogramming-unsubscribe@...
      >
      > Ad-free courtesy of objectmentor.com
    Your message has been successfully submitted and would be delivered to recipients shortly.