# encoding: UTF-8 # KLayout Layout Viewer # Copyright (C) 2006-2024 Matthias Koefferlein # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA if !$:.member?(File::dirname($0)) $:.push(File::dirname($0)) end load("test_prologue.rb") class DBGlyph_TestClass < TestBase # Glyph basics def test_1_Glyph tg = RBA::TextGenerator.default_generator # TODO: no default generator in non-Qt mode (no resources) tg || return assert_equal(tg.name, "std_font") assert_equal(tg.description, "Non-manhattan (0.6 x 0.8 um cell)") assert_equal(tg.width.to_s, "600") assert_equal(tg.dwidth.to_s, "0.6") assert_equal(tg.height.to_s, "800") assert_equal(tg.dheight.to_s, "0.8") assert_equal(tg.design_grid.to_s, "50") assert_equal(tg.ddesign_grid.to_s, "0.05") assert_equal(tg.line_width.to_s, "100") assert_equal(tg.dline_width.to_s, "0.1") assert_equal(tg.dbu.to_s, "0.001") assert_equal(tg.background.to_s, "(-100,-100;600,800)") assert_equal(tg.dbackground.to_s, "(-0.1,-0.1;0.6,0.8)") assert_equal(tg.text("HO", 0.01).to_s, "(0,0;0,70;10,70;10,40;40,40;40,70;50,70;50,0;40,0;40,30;10,30;10,0);(70,0;60,10;60,60;70,70;100,70;110,60;110,35;100,35;100,55;95,60;75,60;70,55;70,15;75,10;95,10;100,15;100,35;110,35;110,10;100,0)") assert_equal(tg.text("H", 0.01).to_s, "(0,0;0,70;10,70;10,40;40,40;40,70;50,70;50,0;40,0;40,30;10,30;10,0)") assert_equal(tg.text("H", 0.01, 2.0).to_s, "(0,0;0,140;20,140;20,80;80,80;80,140;100,140;100,0;80,0;80,60;20,60;20,0)") assert_equal(tg.text("H", 0.01, 1.0, true).to_s, "(-10,-10;-10,70;40,70;40,40;10,40;10,70;0,70;0,0;10,0;10,30;40,30;40,0;50,0;50,70;-10,70;-10,80;60,80;60,-10)") assert_equal(tg.text("H", 0.01, 1.0, false, 0.01).to_s, "(-1,-1;-1,71;11,71;11,41;39,41;39,71;51,71;51,-1;39,-1;39,29;11,29;11,-1)") assert_equal(tg.text("--\\n--", 0.01, 1.0, false, 0.0).to_s, "(5,30;5,40;45,40;45,30);(65,30;65,40;105,40;105,30);(5,-50;5,-40;45,-40;45,-50);(65,-50;65,-40;105,-40;105,-50)") assert_equal(tg.text("--\\n--", 0.01, 1.0, false, 0.0, 0.1).to_s, "(5,30;5,40;45,40;45,30);(75,30;75,40;115,40;115,30);(5,-50;5,-40;45,-40;45,-50);(75,-50;75,-40;115,-40;115,-50)") assert_equal(tg.text("--\\n--", 0.01, 1.0, false, 0.0, 0.1, 0.1).to_s, "(5,30;5,40;45,40;45,30);(75,30;75,40;115,40;115,30);(5,-60;5,-50;45,-50;45,-60);(75,-60;75,-50;115,-50;115,-60)") tgg = RBA::TextGenerator.generators assert_equal(tgg.size > 0, true) assert_equal(tgg[0].name, "std_font") tg = RBA::TextGenerator::new tg.load_from_resource(":/fonts/std_font.gds") assert_equal(tg.name, "std_font") # gives an error because the resource does not exist begin tg = RBA::TextGenerator::new tg.load_from_resource(":/fonts/does_not_exist.gds") assert_equal(false, true) rescue => ex assert_equal(ex.to_s, "Resource not found: :/fonts/does_not_exist.gds in TextGenerator::load_from_resource") end end end load("test_epilogue.rb")