Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/toolkit/modules/tests/browser/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  browser_Geometry.js   Sprache: JAVA

 
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


const { Point, Rect } = ChromeUtils.importESModule(
  "resource://gre/modules/Geometry.sys.mjs"
);

function test() {
  ok(Rect, "Rect class exists");
  for (var fname in tests) {
    tests[fname]();
  }
}

var tests = {
  testGetDimensions() {
    let r = new Rect(5, 10, 100, 50);
    Assert.equal(r.left, 5, "rect has correct left value");
    Assert.equal(r.top, 10, "rect has correct top value");
    Assert.equal(r.right, 105, "rect has correct right value");
    Assert.equal(r.bottom, 60, "rect has correct bottom value");
    Assert.equal(r.width, 100, "rect has correct width value");
    Assert.equal(r.height, 50, "rect has correct height value");
    Assert.equal(r.x, 5, "rect has correct x value");
    Assert.equal(r.y, 10, "rect has correct y value");
  },

  testIsEmpty() {
    let r = new Rect(0, 0, 0, 10);
    ok(r.isEmpty(), "rect with nonpositive width is empty");
    r = new Rect(0, 0, 10, 0);
    ok(r.isEmpty(), "rect with nonpositive height is empty");
    r = new Rect(0, 0, 10, 10);
    ok(!r.isEmpty(), "rect with positive dimensions is not empty");
  },

  testRestrictTo() {
    let r1 = new Rect(10, 10, 100, 100);
    let r2 = new Rect(50, 50, 100, 100);
    r1.restrictTo(r2);
    ok(r1.equals(new Rect(50, 50, 60, 60)), "intersection is non-empty");

    r1 = new Rect(10, 10, 100, 100);
    r2 = new Rect(120, 120, 100, 100);
    r1.restrictTo(r2);
    ok(r1.isEmpty(), "intersection is empty");

    r1 = new Rect(10, 10, 100, 100);
    r2 = new Rect(0, 0, 0, 0);
    r1.restrictTo(r2);
    ok(r1.isEmpty(), "intersection of rect and empty is empty");

    r1 = new Rect(0, 0, 0, 0);
    r2 = new Rect(0, 0, 0, 0);
    r1.restrictTo(r2);
    ok(r1.isEmpty(), "intersection of empty and empty is empty");
  },

  testExpandToContain() {
    let r1 = new Rect(10, 10, 100, 100);
    let r2 = new Rect(50, 50, 100, 100);
    r1.expandToContain(r2);
    ok(
      r1.equals(new Rect(10, 10, 140, 140)),
      "correct expandToContain on intersecting rectangles"
    );

    r1 = new Rect(10, 10, 100, 100);
    r2 = new Rect(120, 120, 100, 100);
    r1.expandToContain(r2);
    ok(
      r1.equals(new Rect(10, 10, 210, 210)),
      "correct expandToContain on non-intersecting rectangles"
    );

    r1 = new Rect(10, 10, 100, 100);
    r2 = new Rect(0, 0, 0, 0);
    r1.expandToContain(r2);
    ok(
      r1.equals(new Rect(10, 10, 100, 100)),
      "expandToContain of rect and empty is rect"
    );

    r1 = new Rect(10, 10, 0, 0);
    r2 = new Rect(0, 0, 0, 0);
    r1.expandToContain(r2);
    ok(r1.isEmpty(), "expandToContain of empty and empty is empty");
  },

  testSubtract: function testSubtract() {
    function equals(rects1, rects2) {
      return (
        rects1.length == rects2.length &&
        rects1.every(function (r, i) {
          return r.equals(rects2[i]);
        })
      );
    }

    let r1 = new Rect(0, 0, 100, 100);
    let r2 = new Rect(500, 500, 100, 100);
    ok(
      equals(r1.subtract(r2), [r1]),
      "subtract area outside of region yields same region"
    );

    r1 = new Rect(0, 0, 100, 100);
    r2 = new Rect(-10, -10, 50, 120);
    ok(
      equals(r1.subtract(r2), [new Rect(40, 0, 60, 100)]),
      "subtracting vertical bar from edge leaves one rect"
    );

    r1 = new Rect(0, 0, 100, 100);
    r2 = new Rect(-10, -10, 120, 50);
    ok(
      equals(r1.subtract(r2), [new Rect(0, 40, 100, 60)]),
      "subtracting horizontal bar from edge leaves one rect"
    );

    r1 = new Rect(0, 0, 100, 100);
    r2 = new Rect(40, 40, 20, 20);
    ok(
      equals(r1.subtract(r2), [
        new Rect(0, 0, 40, 100),
        new Rect(40, 0, 20, 40),
        new Rect(40, 60, 20, 40),
        new Rect(60, 0, 40, 100),
      ]),
      "subtracting rect in middle leaves union of rects"
    );
  },
};

Messung V0.5
C=98 H=90 G=94

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.