Search in sources :

Example 1 with Gen

use of org.quicktheories.core.Gen in project cassandra by apache.

the class WarningsSnapshotTest method counter.

private static Gen<Counter> counter() {
    Gen<Boolean> empty = SourceDSL.booleans().all();
    Constraint maxValue = Constraint.between(1, Long.MAX_VALUE);
    Gen<ImmutableSet<InetAddressAndPort>> instances = SourceDSL.arbitrary().pick(ImmutableSet.of(HOME), ImmutableSet.of(VACATION_HOME), ImmutableSet.of(HOME, VACATION_HOME));
    Gen<Counter> gen = rs -> empty.generate(rs) ? Counter.empty() : new Counter(instances.generate(rs), rs.next(maxValue));
    return gen.describedAs(Counter::toString);
}
Also used : InetAddress(java.net.InetAddress) InetAddressAndPort(org.apache.cassandra.locator.InetAddressAndPort) Gen(org.quicktheories.core.Gen) ImmutableSet(com.google.common.collect.ImmutableSet) Constraint(org.quicktheories.impl.Constraint) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) WarningsSnapshot(org.apache.cassandra.service.reads.trackwarnings.WarningsSnapshot) Test(org.junit.Test) SourceDSL(org.quicktheories.generators.SourceDSL) QuickTheory.qt(org.quicktheories.QuickTheory.qt) UnknownHostException(java.net.UnknownHostException) ImmutableSet(com.google.common.collect.ImmutableSet) Constraint(org.quicktheories.impl.Constraint)

Example 2 with Gen

use of org.quicktheories.core.Gen in project cassandra by apache.

the class CassandraGenerators method partitionKeyDataGen.

public static Gen<ByteBuffer> partitionKeyDataGen(TableMetadata metadata) {
    ImmutableList<ColumnMetadata> columns = metadata.partitionKeyColumns();
    assert !columns.isEmpty() : "Unable to find partition key columns";
    if (columns.size() == 1)
        return getTypeSupport(columns.get(0).type).bytesGen();
    List<Gen<ByteBuffer>> columnGens = new ArrayList<>(columns.size());
    for (ColumnMetadata cm : columns) columnGens.add(getTypeSupport(cm.type).bytesGen());
    return rnd -> {
        ByteBuffer[] buffers = new ByteBuffer[columnGens.size()];
        for (int i = 0; i < columnGens.size(); i++) buffers[i] = columnGens.get(i).generate(rnd);
        return CompositeType.build(ByteBufferAccessor.instance, buffers);
    };
}
Also used : LocalPartitioner(org.apache.cassandra.dht.LocalPartitioner) SourceDSL(org.quicktheories.generators.SourceDSL) AbstractType(org.apache.cassandra.db.marshal.AbstractType) ByteBuffer(java.nio.ByteBuffer) ByteOrderedPartitioner(org.apache.cassandra.dht.ByteOrderedPartitioner) InetAddress(java.net.InetAddress) ConnectionType(org.apache.cassandra.net.ConnectionType) Gen(org.quicktheories.core.Gen) Matcher(java.util.regex.Matcher) TimeUUIDType(org.apache.cassandra.db.marshal.TimeUUIDType) Murmur3Partitioner(org.apache.cassandra.dht.Murmur3Partitioner) NoPayload(org.apache.cassandra.net.NoPayload) PingRequest(org.apache.cassandra.net.PingRequest) SinglePartitionReadCommand(org.apache.cassandra.db.SinglePartitionReadCommand) CompositeType(org.apache.cassandra.db.marshal.CompositeType) TableParams(org.apache.cassandra.schema.TableParams) MultilineRecursiveToStringStyle(org.apache.commons.lang3.builder.MultilineRecursiveToStringStyle) AbstractTypeGenerators.allowReversed(org.apache.cassandra.utils.AbstractTypeGenerators.allowReversed) Generate(org.quicktheories.generators.Generate) Set(java.util.Set) Verb(org.apache.cassandra.net.Verb) List(java.util.List) Stream(java.util.stream.Stream) SMALL_TIME_SPAN_NANOS(org.apache.cassandra.utils.Generators.SMALL_TIME_SPAN_NANOS) ColumnIdentifier(org.apache.cassandra.cql3.ColumnIdentifier) RandomnessSource(org.quicktheories.core.RandomnessSource) Modifier(java.lang.reflect.Modifier) TableMetadata(org.apache.cassandra.schema.TableMetadata) Pattern(java.util.regex.Pattern) SchemaCQLHelper(org.apache.cassandra.db.SchemaCQLHelper) InetAddressAndPort(org.apache.cassandra.locator.InetAddressAndPort) ColumnMetadata(org.apache.cassandra.schema.ColumnMetadata) TableId(org.apache.cassandra.schema.TableId) FieldIdentifier(org.apache.cassandra.cql3.FieldIdentifier) ReadCommand(org.apache.cassandra.db.ReadCommand) Message(org.apache.cassandra.net.Message) IDENTIFIER_GEN(org.apache.cassandra.utils.Generators.IDENTIFIER_GEN) ArrayList(java.util.ArrayList) RandomPartitioner(org.apache.cassandra.dht.RandomPartitioner) HashSet(java.util.HashSet) Token(org.apache.cassandra.dht.Token) ImmutableList(com.google.common.collect.ImmutableList) ByteBufferAccessor(org.apache.cassandra.db.marshal.ByteBufferAccessor) EmptyType(org.apache.cassandra.db.marshal.EmptyType) OrderPreservingPartitioner(org.apache.cassandra.dht.OrderPreservingPartitioner) ReflectionToStringBuilder(org.apache.commons.lang3.builder.ReflectionToStringBuilder) AbstractTypeGenerators.getTypeSupport(org.apache.cassandra.utils.AbstractTypeGenerators.getTypeSupport) TIMESTAMP_NANOS(org.apache.cassandra.utils.Generators.TIMESTAMP_NANOS) Slices(org.apache.cassandra.db.Slices) Constraint(org.quicktheories.impl.Constraint) IPartitioner(org.apache.cassandra.dht.IPartitioner) TINY_TIME_SPAN_NANOS(org.apache.cassandra.utils.Generators.TINY_TIME_SPAN_NANOS) Gen(org.quicktheories.core.Gen) ColumnMetadata(org.apache.cassandra.schema.ColumnMetadata) ArrayList(java.util.ArrayList)

Example 3 with Gen

use of org.quicktheories.core.Gen in project cassandra by apache.

the class Generators method charArray.

public static Gen<char[]> charArray(Gen<Integer> sizes, char[] domain) {
    Constraint constraints = Constraint.between(0, domain.length - 1).withNoShrinkPoint();
    Gen<char[]> gen = td -> {
        int size = sizes.generate(td);
        char[] is = new char[size];
        for (int i = 0; i != size; i++) {
            int idx = (int) td.next(constraints);
            is[i] = domain[idx];
        }
        return is;
    };
    gen.describedAs(String::new);
    return gen;
}
Also used : Logger(org.slf4j.Logger) Date(java.util.Date) Predicate(java.util.function.Predicate) Timestamp(java.sql.Timestamp) ZonedDateTime(java.time.ZonedDateTime) LoggerFactory(org.slf4j.LoggerFactory) Random(java.util.Random) ArrayUtils(org.apache.commons.lang3.ArrayUtils) SourceDSL(org.quicktheories.generators.SourceDSL) UUID(java.util.UUID) UnknownHostException(java.net.UnknownHostException) ByteBuffer(java.nio.ByteBuffer) StandardCharsets(java.nio.charset.StandardCharsets) InetAddress(java.net.InetAddress) TimeUnit(java.util.concurrent.TimeUnit) Gen(org.quicktheories.core.Gen) Constraint(org.quicktheories.impl.Constraint) RandomnessSource(org.quicktheories.core.RandomnessSource) ZoneOffset(java.time.ZoneOffset) Constraint(org.quicktheories.impl.Constraint)

Example 4 with Gen

use of org.quicktheories.core.Gen in project cassandra by apache.

the class JMXToolTest method serde.

private void serde(JMXTool.Dump.Format serializer, JMXTool.Diff.Format deserializer) {
    DataOutputBuffer buffer = new DataOutputBuffer();
    qt().withShrinkCycles(0).forAll(gen()).checkAssert(orFail(map -> serde(serializer, deserializer, buffer, map)));
}
Also used : Arrays(java.util.Arrays) DataOutputBuffer(org.apache.cassandra.io.util.DataOutputBuffer) ToolResult(org.apache.cassandra.tools.ToolRunner.ToolResult) IOException(java.io.IOException) Test(org.junit.Test) SourceDSL(org.quicktheories.generators.SourceDSL) QuickTheory.qt(org.quicktheories.QuickTheory.qt) ArrayList(java.util.ArrayList) Generators(org.apache.cassandra.utils.Generators) List(java.util.List) Gen(org.quicktheories.core.Gen) Map(java.util.Map) Assertions(org.assertj.core.api.Assertions) DataInputBuffer(org.apache.cassandra.io.util.DataInputBuffer) FailingConsumer.orFail(org.apache.cassandra.utils.FailingConsumer.orFail) DataOutputBuffer(org.apache.cassandra.io.util.DataOutputBuffer)

Aggregations

Gen (org.quicktheories.core.Gen)4 SourceDSL (org.quicktheories.generators.SourceDSL)4 InetAddress (java.net.InetAddress)3 Constraint (org.quicktheories.impl.Constraint)3 UnknownHostException (java.net.UnknownHostException)2 ByteBuffer (java.nio.ByteBuffer)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 RandomnessSource (org.quicktheories.core.RandomnessSource)2 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 IOException (java.io.IOException)1 Modifier (java.lang.reflect.Modifier)1 StandardCharsets (java.nio.charset.StandardCharsets)1 Timestamp (java.sql.Timestamp)1 ZoneOffset (java.time.ZoneOffset)1 ZonedDateTime (java.time.ZonedDateTime)1 Arrays (java.util.Arrays)1 Date (java.util.Date)1 HashSet (java.util.HashSet)1