[web] Fix conic to quad conversion assertion. (#18811)

* Fix subdivision assertion in Conic to Quad conversion

* Use const for upper bound

* remove unused import
This commit is contained in:
Ferhat 2020-06-19 17:01:45 -07:00 committed by GitHub
parent bd0de19195
commit b8654ff0f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View File

@ -33,7 +33,7 @@ class Conic {
// Split conic into quads, writes quad coordinates into [_pointList] and
// returns number of quads.
assert(subdivideCount > 0);
assert(subdivideCount >= 0 && subdivideCount <= _maxSubdivisionCount);
int quadCount = 1 << subdivideCount;
bool skipSubdivide = false;
pointList.add(ui.Offset(p0x, p0y));

View File

@ -3,9 +3,9 @@
// found in the LICENSE file.
// @dart = 2.6
import 'package:test/test.dart';
import 'dart:js_util' as js_util;
import 'dart:html' as html;
import 'package:test/test.dart';
import 'package:ui/ui.dart' hide window;
import 'package:ui/src/engine.dart';
@ -309,4 +309,10 @@ void main() {
expect(path2.contains(Offset(100, 100)), isFalse);
expect(path2.contains(Offset(50, 100)), isFalse);
});
test('Should convert conic to quad when approximation error is small', () {
Conic conic = Conic(120.0, 20.0, 160.99470420829266, 20.0,
190.19301120261332, 34.38770865870253, 0.9252691032413082);
expect(conic.toQuads().length, 3);
});
}