|
1 | 1 | package org.geoscript.support.graph
|
2 | 2 |
|
3 |
| -import org.scalacheck._, Arbitrary._, Prop._ |
| 3 | +import org.scalatest._, prop._ |
4 | 4 |
|
5 |
| -object GraphCheck extends Properties("Maximal cliques") { |
| 5 | +class GraphCheck extends PropSpec with Checkers { |
6 | 6 | val parity = (ps: Set[Int]) =>
|
7 | 7 | (a: Int, b: Int) => (ps - 0).exists(p => (a + b) % p == 0)
|
8 | 8 |
|
9 |
| - property("are cliques") = |
10 |
| - forAll { (vs: Set[Int], ps: Set[Int]) => |
| 9 | + property("are cliques") { |
| 10 | + check { (vs: Set[Int], ps: Set[Int]) => |
11 | 11 | val cliques = maximalCliques(vs, parity(ps))
|
12 | 12 | cliques.forall(isClique(_, parity(ps)))
|
13 | 13 | }
|
| 14 | + } |
14 | 15 |
|
15 |
| - property("are maximal") = |
16 |
| - forAll { (vs: Set[Int], ps: Set[Int]) => |
| 16 | + property("are maximal") { |
| 17 | + check { (vs: Set[Int], ps: Set[Int]) => |
17 | 18 | val cliques = maximalCliques(vs, parity(ps))
|
18 | 19 | cliques.forall { c =>
|
19 | 20 | (vs -- c).forall { v => !isClique(c + v, parity(ps)) }
|
20 | 21 | }
|
21 | 22 | }
|
| 23 | + } |
22 | 24 |
|
23 |
| - property("contain every node") = |
24 |
| - forAll { (vs: Set[Int], ps: Set[Int]) => |
| 25 | + property("contain every node") { |
| 26 | + check { (vs: Set[Int], ps: Set[Int]) => |
25 | 27 | val cliques = maximalCliques(vs, parity(ps))
|
26 | 28 | cliques.flatten == vs
|
27 | 29 | }
|
| 30 | + } |
28 | 31 |
|
29 |
| - property("are never subsets of each other") = |
30 |
| - forAll { (vs: Set[Int], ps: Set[Int]) => |
| 32 | + property("are never subsets of each other") { |
| 33 | + check { (vs: Set[Int], ps: Set[Int]) => |
31 | 34 | val cliques = maximalCliques(vs, parity(ps))
|
32 | 35 | cliques.forall { a =>
|
33 | 36 | (cliques - a).forall { b =>
|
34 | 37 | !(a subsetOf b) && !(b subsetOf a)
|
35 | 38 | } }
|
36 | 39 | }
|
| 40 | + } |
37 | 41 | }
|
0 commit comments