diff options
author | Norbert Schneider <norbert.schneider@code-intelligence.com> | 2023-04-24 16:24:53 +0200 |
---|---|---|
committer | Norbert Schneider <mail@bertschneider.de> | 2023-05-19 16:17:07 +0200 |
commit | 8f8e38ff1032a3b74bff3eb8e3decba0052ff8ee (patch) | |
tree | bce1765912f91c7bcac2dd5c8844891397e1de9e /src/test/java/com | |
parent | adc1a7e12931e69d63a1c5fea3c4c709f786f32b (diff) | |
download | jazzer-api-8f8e38ff1032a3b74bff3eb8e3decba0052ff8ee.tar.gz |
mutator: Null cross over
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java index 7cc42e17..bc9a65b2 100644 --- a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java +++ b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java @@ -27,6 +27,7 @@ import com.code_intelligence.jazzer.mutation.support.TypeHolder; import java.lang.reflect.AnnotatedType; import org.junit.jupiter.api.Test; +@SuppressWarnings("unchecked") class NullableMutatorTest { @Test void testNullable() { @@ -74,4 +75,27 @@ class NullableMutatorTest { SerializingMutator<Boolean> mutator = factory.createOrThrow(boolean.class); assertThat(mutator.toString()).isEqualTo("Boolean"); } + + @Test + void testCrossOver() { + SerializingMutator<Boolean> mutator = + new ChainedMutatorFactory(new NullableMutatorFactory(), new BooleanMutatorFactory()) + .createOrThrow(Boolean.class); + try (MockPseudoRandom prng = mockPseudoRandom(true)) { + Boolean valueCrossedOver = mutator.crossOver(Boolean.TRUE, Boolean.TRUE, prng); + assertThat(valueCrossedOver).isNotNull(); + } + try (MockPseudoRandom prng = mockPseudoRandom()) { + Boolean bothNull = mutator.crossOver(null, null, prng); + assertThat(bothNull).isNull(); + } + try (MockPseudoRandom prng = mockPseudoRandom(false)) { + Boolean oneNotNull = mutator.crossOver(null, Boolean.TRUE, prng); + assertThat(oneNotNull).isNotNull(); + } + try (MockPseudoRandom prng = mockPseudoRandom(true)) { + Boolean nullFrequency = mutator.crossOver(null, Boolean.TRUE, prng); + assertThat(nullFrequency).isNull(); + } + } } |