* Modification of the mapping is possible now
(#map used to ignore mappings if there was one
already)
* Added DropCell mapping (also for RBA)
* Added unit tests for cell mapping, layer mapping
db::merge_layouts, db::copy_shapes and db::move_shapes
* ut framework now has a text file compare
* Added tests for strm2txt, strmclip and strmcmp
* Fixed the output of the PrintingDiffReceiver in some cases
* Cell renaming does not give a difference in smart cell mapping mode
The goal of the refactoring is to support unit tests
for the db library.
For this, a distributed unit test concept has been
introduced (later to be extended to other libs).
Unit tests are shared objects called ".ut" and are
automatically loaded by the ut runner. The bd library
now has two folders - one for sources and one for the
unit tests. The sources are separated into lib and apps.
First unit tests for the writer options have been
provided.
* Generalized Polygon to edge interaction into db::Polygon tools
* Added tests for this
* Equipped region to edges interaction with this feature to
reduce random test fails
* Multiple (reproducible) seeds for Region tests
* More tolerances for TilingProcessor tests
* ICplxTrans is_unity? implementation is using proper
double tolerances now
* File watcher tests wait longer to allow for slow
response on loaded Windows build server
- Allow full 32bit for box width and height
and some other properties (for border case
testing - not recommended)
- Reduce arrays with step distance 0 to
dimension 1 - avoids overlapping instances
or shapes.
Bug: sometimes, if the files had different database units, the XOR
tool was showing differences while there are none.
This was due to a sloppy computation of the tile boxes. The solution
is to properly round the tile size to a common database unit and
to use a common effective size for both inputs.
Region: insert of other regions, shape collections (with transformation)
Edges: insert of other edge collections, regions, shape collections (with transformation)
EdgePairs: insert of other edge pair collections
- modified definition of texts with the ability to produce
point-like edge objects
- middle and extent_refs methods for center point and other
references.
With this fix, regions can be interaction-tested with edge collections.
Only "normal" interaction is available - select_overlapping is not. This
is still confined to region to region interactions.
RBA now provides a hash method for Box, Edge, EdgePair, Trans,
Polygon, SimplePolygon, CellInstArray, LayerInfo, Path, Text,
Point and Vector.
eql? is mapped to ==.
==, != and < act "fuzzy" for the double-typed variants.
Hence, these objects can be used as hash keys now.
- A new constructor for RBA::Region has been provided to
create text markers from a shape iterator
- The DRC framework has been enhanced with a "text" function
The double types (DCoord, DPoint, DVector ...) support a
more consistent equivalence criterion now. This supports
micron-unit objects without loss of precision.
Before this fix, the precision used for 0.01 which was
basically implying a resolution of 10nm for micrometer-unit
double objects.
Libraries now carry a technology association and
only libraries associated with the current technology
can be selected.
To enforce proper update, cancel() will be used upon
change of technology. This avoids side effects when
changing the technology without notifying the library
selection widgets.
The MainWindow::cancel method has been generalized to
cover the functionality of cm_cancel without the
exception handling.
This enables font packages: packages can now provide fonts by
featuring a "fonts" directory with the font layouts.
This commit also adds the capability to dynamically add fonts.
The Glyphs system is decoupled from the application's system
path and the BASIC.TEXT PCell parameters are non-cached to
enable dynamic updates.