Skip to content

Commit b6a31f7

Browse files
committed
[query] Move is.hail.check to test code
1 parent df36f36 commit b6a31f7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+655
-622
lines changed

hail/src/main/scala/is/hail/types/physical/PArray.scala

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package is.hail.types.physical
22

3-
import is.hail.annotations.Annotation
4-
import is.hail.backend.HailStateManager
5-
import is.hail.check.Gen
63
import is.hail.types.virtual.TArray
74

85
trait PArrayIterator {
@@ -17,7 +14,4 @@ abstract class PArray extends PArrayBackedContainer {
1714
final protected[physical] val elementRequired = elementType.required
1815

1916
def elementIterator(aoff: Long, length: Int): PArrayIterator
20-
21-
override def genNonmissingValue(sm: HailStateManager): Gen[IndexedSeq[Annotation]] =
22-
Gen.buildableOf[Array](elementType.genValue(sm)).map(x => x: IndexedSeq[Annotation])
2317
}

hail/src/main/scala/is/hail/types/physical/PBaseStruct.scala

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package is.hail.types.physical
22

33
import is.hail.annotations._
4-
import is.hail.asm4s.{Code, _}
4+
import is.hail.asm4s._
55
import is.hail.backend.HailStateManager
6-
import is.hail.check.Gen
76
import is.hail.expr.ir.EmitCodeBuilder
87
import is.hail.types.physical.stypes.interfaces.SBaseStructValue
98
import is.hail.utils._
@@ -144,10 +143,4 @@ abstract class PBaseStruct extends PType {
144143
override def loadCheapSCode(cb: EmitCodeBuilder, addr: Code[Long]): SBaseStructValue
145144

146145
override lazy val containsPointers: Boolean = types.exists(_.containsPointers)
147-
148-
override def genNonmissingValue(sm: HailStateManager): Gen[Annotation] =
149-
if (types.isEmpty) {
150-
Gen.const(Annotation.empty)
151-
} else
152-
Gen.uniformSequence(types.map(t => t.genValue(sm))).map(a => Annotation(a: _*))
153146
}
Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package is.hail.types.physical
22

3-
import is.hail.annotations._
4-
import is.hail.backend.HailStateManager
5-
import is.hail.check.Gen
63
import is.hail.types.physical.stypes.interfaces.SContainer
74
import is.hail.types.virtual.TDict
85

@@ -15,7 +12,4 @@ abstract class PDict extends PContainer {
1512
def sType: SContainer
1613

1714
def elementType: PStruct
18-
19-
override def genNonmissingValue(sm: HailStateManager): Gen[Annotation] =
20-
Gen.buildableOf2[Map](Gen.zip(keyType.genValue(sm), valueType.genValue(sm)))
2115
}
Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
package is.hail.types.physical
22

3-
import is.hail.annotations._
4-
import is.hail.backend.HailStateManager
5-
import is.hail.check.Gen
63
import is.hail.types.virtual.TSet
74

85
abstract class PSet extends PContainer {
96
lazy val virtualType: TSet = TSet(elementType.virtualType)
10-
11-
override def genNonmissingValue(sm: HailStateManager): Gen[Annotation] =
12-
Gen.buildableOf[Set](elementType.genValue(sm))
137
}

hail/src/main/scala/is/hail/types/physical/PType.scala

Lines changed: 0 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ package is.hail.types.physical
33
import is.hail.annotations._
44
import is.hail.asm4s._
55
import is.hail.backend.{ExecuteContext, HailStateManager}
6-
import is.hail.check.{Arbitrary, Gen}
76
import is.hail.expr.ir._
87
import is.hail.types.{tcoerce, Requiredness}
98
import is.hail.types.physical.stypes.{SType, SValue}
109
import is.hail.types.physical.stypes.concrete.SRNGState
1110
import is.hail.types.virtual._
1211
import is.hail.utils._
13-
import is.hail.variant.ReferenceGenome
1412

1513
import org.apache.spark.sql.Row
1614
import org.json4s.CustomSerializer
@@ -31,108 +29,6 @@ class PStructSerializer extends CustomSerializer[PStruct](format =>
3129
)
3230

3331
object PType {
34-
def genScalar(required: Boolean): Gen[PType] =
35-
Gen.oneOf(
36-
PBoolean(required),
37-
PInt32(required),
38-
PInt64(required),
39-
PFloat32(required),
40-
PFloat64(required),
41-
PCanonicalString(required),
42-
PCanonicalCall(required),
43-
)
44-
45-
val genOptionalScalar: Gen[PType] = genScalar(false)
46-
47-
val genRequiredScalar: Gen[PType] = genScalar(true)
48-
49-
def genComplexType(required: Boolean): Gen[PType] = {
50-
val rgDependents = ReferenceGenome.hailReferences.toArray.map(PCanonicalLocus(_, required))
51-
val others = Array(PCanonicalCall(required))
52-
Gen.oneOfSeq(rgDependents ++ others)
53-
}
54-
55-
def genFields(required: Boolean, genFieldType: Gen[PType]): Gen[Array[PField]] = {
56-
Gen.buildableOf[Array](
57-
Gen.zip(Gen.identifier, genFieldType)
58-
)
59-
.filter(fields => fields.map(_._1).areDistinct())
60-
.map(fields =>
61-
fields
62-
.iterator
63-
.zipWithIndex
64-
.map { case ((k, t), i) => PField(k, t, i) }
65-
.toArray
66-
)
67-
}
68-
69-
def preGenStruct(required: Boolean, genFieldType: Gen[PType]): Gen[PStruct] =
70-
for (fields <- genFields(required, genFieldType)) yield PCanonicalStruct(fields, required)
71-
72-
def preGenTuple(required: Boolean, genFieldType: Gen[PType]): Gen[PTuple] =
73-
for (fields <- genFields(required, genFieldType))
74-
yield PCanonicalTuple(required, fields.map(_.typ): _*)
75-
76-
private val defaultRequiredGenRatio = 0.2
77-
78-
def genStruct: Gen[PStruct] = Gen.coin(defaultRequiredGenRatio).flatMap(preGenStruct(_, genArb))
79-
80-
val genOptionalStruct: Gen[PType] = preGenStruct(required = false, genArb)
81-
82-
val genRequiredStruct: Gen[PType] = preGenStruct(required = true, genArb)
83-
84-
val genInsertableStruct: Gen[PStruct] = Gen.coin(defaultRequiredGenRatio).flatMap(required =>
85-
if (required)
86-
preGenStruct(required = true, genArb)
87-
else
88-
preGenStruct(required = false, genOptional)
89-
)
90-
91-
def genSized(size: Int, required: Boolean, genPStruct: Gen[PStruct]): Gen[PType] =
92-
if (size < 1)
93-
Gen.const(PCanonicalStruct.empty(required))
94-
else if (size < 2)
95-
genScalar(required)
96-
else {
97-
Gen.frequency(
98-
(4, genScalar(required)),
99-
(1, genComplexType(required)),
100-
(
101-
1,
102-
genArb.map {
103-
PCanonicalArray(_)
104-
},
105-
),
106-
(
107-
1,
108-
genArb.map {
109-
PCanonicalSet(_)
110-
},
111-
),
112-
(
113-
1,
114-
genArb.map {
115-
PCanonicalInterval(_)
116-
},
117-
),
118-
(1, preGenTuple(required, genArb)),
119-
(1, Gen.zip(genRequired, genArb).map { case (k, v) => PCanonicalDict(k, v) }),
120-
(1, genPStruct.resize(size)),
121-
)
122-
}
123-
124-
def preGenArb(required: Boolean, genStruct: Gen[PStruct] = genStruct): Gen[PType] =
125-
Gen.sized(genSized(_, required, genStruct))
126-
127-
def genArb: Gen[PType] = Gen.coin(0.2).flatMap(preGenArb(_))
128-
129-
val genOptional: Gen[PType] = preGenArb(required = false)
130-
131-
val genRequired: Gen[PType] = preGenArb(required = true)
132-
133-
val genInsertable: Gen[PStruct] = genInsertableStruct
134-
135-
implicit def arbType = Arbitrary(genArb)
13632

13733
def canonical(t: Type, required: Boolean, innerRequired: Boolean): PType = {
13834
t match {
@@ -397,15 +293,6 @@ object PType {
397293
}
398294

399295
abstract class PType extends Serializable with Requiredness {
400-
self =>
401-
402-
def genValue(sm: HailStateManager): Gen[Annotation] =
403-
if (required) genNonmissingValue(sm)
404-
else Gen.nextCoin(0.05).flatMap(isEmpty =>
405-
if (isEmpty) Gen.const(null) else genNonmissingValue(sm)
406-
)
407-
408-
def genNonmissingValue(sm: HailStateManager): Gen[Annotation] = virtualType.genNonmissingValue(sm)
409296

410297
def virtualType: Type
411298

hail/src/main/scala/is/hail/types/virtual/TArray.scala

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package is.hail.types.virtual
22

33
import is.hail.annotations.{Annotation, ExtendedOrdering}
44
import is.hail.backend.HailStateManager
5-
import is.hail.check.Gen
65

76
import scala.reflect.{classTag, ClassTag}
87

@@ -45,9 +44,6 @@ final case class TArray(elementType: Type) extends TContainer {
4544

4645
override def str(a: Annotation): String = JsonMethods.compact(export(a))
4746

48-
override def genNonmissingValue(sm: HailStateManager): Gen[IndexedSeq[Annotation]] =
49-
Gen.buildableOf[Array](elementType.genValue(sm)).map(x => x: IndexedSeq[Annotation])
50-
5147
def mkOrdering(sm: HailStateManager, missingEqual: Boolean): ExtendedOrdering =
5248
ExtendedOrdering.iterableOrdering(elementType.ordering(sm), missingEqual)
5349

hail/src/main/scala/is/hail/types/virtual/TBaseStruct.scala

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package is.hail.types.virtual
22

33
import is.hail.annotations._
44
import is.hail.backend.HailStateManager
5-
import is.hail.check.Gen
65
import is.hail.utils._
76

87
import scala.reflect.{classTag, ClassTag}
@@ -97,18 +96,6 @@ abstract class TBaseStruct extends Type {
9796

9897
override def str(a: Annotation): String = JsonMethods.compact(export(a))
9998

100-
override def genNonmissingValue(sm: HailStateManager): Gen[Annotation] = {
101-
if (types.isEmpty) {
102-
Gen.const(Annotation.empty)
103-
} else
104-
Gen.size.flatMap(fuel =>
105-
if (types.length > fuel)
106-
Gen.uniformSequence(types.map(t => Gen.const(null))).map(a => Annotation(a: _*))
107-
else
108-
Gen.uniformSequence(types.map(t => t.genValue(sm))).map(a => Annotation(a: _*))
109-
)
110-
}
111-
11299
override def valuesSimilar(a1: Annotation, a2: Annotation, tolerance: Double, absolute: Boolean)
113100
: Boolean =
114101
a1 == a2 || (a1 != null && a2 != null

hail/src/main/scala/is/hail/types/virtual/TBinary.scala

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,14 @@ package is.hail.types.virtual
22

33
import is.hail.annotations._
44
import is.hail.backend.HailStateManager
5-
import is.hail.check.Arbitrary._
6-
import is.hail.check.Gen
75

8-
import scala.reflect.{ClassTag, _}
6+
import scala.reflect._
97

108
case object TBinary extends Type {
119
def _toPretty = "Binary"
1210

1311
def _typeCheck(a: Any): Boolean = a.isInstanceOf[Array[Byte]]
1412

15-
override def genNonmissingValue(sm: HailStateManager): Gen[Annotation] =
16-
Gen.buildableOf(arbitrary[Byte])
17-
1813
override def scalaClassTag: ClassTag[Array[Byte]] = classTag[Array[Byte]]
1914

2015
def mkOrdering(sm: HailStateManager, _missingEqual: Boolean = true): ExtendedOrdering =

hail/src/main/scala/is/hail/types/virtual/TBoolean.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ package is.hail.types.virtual
22

33
import is.hail.annotations._
44
import is.hail.backend.HailStateManager
5-
import is.hail.check.Arbitrary._
6-
import is.hail.check.Gen
75

8-
import scala.reflect.{ClassTag, _}
6+
import scala.reflect._
97

108
case object TBoolean extends Type {
119
def _toPretty = "Boolean"
@@ -19,8 +17,6 @@ case object TBoolean extends Type {
1917

2018
def parse(s: String): Annotation = s.toBoolean
2119

22-
override def genNonmissingValue(sm: HailStateManager): Gen[Annotation] = arbitrary[Boolean]
23-
2420
override def scalaClassTag: ClassTag[java.lang.Boolean] = classTag[java.lang.Boolean]
2521

2622
override def mkOrdering(sm: HailStateManager, missingEqual: Boolean): ExtendedOrdering =

hail/src/main/scala/is/hail/types/virtual/TCall.scala

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@ package is.hail.types.virtual
22

33
import is.hail.annotations._
44
import is.hail.backend.HailStateManager
5-
import is.hail.check.Gen
65
import is.hail.variant.Call
76

8-
import scala.reflect.{ClassTag, _}
7+
import scala.reflect._
98

109
case object TCall extends Type {
1110
def _toPretty = "Call"
@@ -17,8 +16,6 @@ case object TCall extends Type {
1716

1817
def _typeCheck(a: Any): Boolean = a.isInstanceOf[Int]
1918

20-
override def genNonmissingValue(sm: HailStateManager): Gen[Annotation] = Call.genNonmissingValue
21-
2219
override def scalaClassTag: ClassTag[java.lang.Integer] = classTag[java.lang.Integer]
2320

2421
override def str(a: Annotation): String =

0 commit comments

Comments
 (0)