skia2/tests/IsClosedSingleContourTest.cpp

60 lines
1.4 KiB
C++

/*
* Copyright 2015 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "Test.h"
#include "SkPathPriv.h"
DEF_TEST(IsClosedSingleContourTest, reporter) {
SkPath p;
REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
p.reset();
p.close();
REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
p.reset();
p.moveTo(10, 10);
p.close();
REPORTER_ASSERT(reporter, SkPathPriv::IsClosedSingleContour(p));
p.reset();
p.moveTo(10, 10);
p.lineTo(20, 20);
p.close();
REPORTER_ASSERT(reporter, SkPathPriv::IsClosedSingleContour(p));
p.reset();
p.moveTo(10, 10);
p.lineTo(20, 20);
p.quadTo(30, 30, 40, 40);
p.cubicTo(50, 50, 60, 60, 70, 70);
p.conicTo(30, 30, 40, 40, 0.5);
p.close();
REPORTER_ASSERT(reporter, SkPathPriv::IsClosedSingleContour(p));
p.reset();
p.moveTo(10, 10);
p.lineTo(20, 20);
p.lineTo(20, 30);
REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
p.reset();
p.moveTo(10, 10);
p.lineTo(20, 20);
p.moveTo(10, 10);
p.lineTo(20, 30);
p.close();
REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
p.reset();
p.moveTo(10, 10);
p.lineTo(20, 20);
p.close();
p.lineTo(20, 30);
p.close();
REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
}