RecordInstantiator.java

1
package com.ancientprogramming.fixedformat4j.format.impl;
2
3
import com.ancientprogramming.fixedformat4j.exception.FixedFormatException;
4
5
import java.lang.reflect.Constructor;
6
7
import static java.lang.String.format;
8
9
/**
10
 * Creates instances of {@code @Record}-annotated classes via reflection,
11
 * including support for static nested classes and non-static inner classes.
12
 *
13
 * @author Jacob von Eyben - <a href="https://eybenconsult.com">https://eybenconsult.com</a>
14
 * @since 1.6.0
15
 */
16
class RecordInstantiator {
17
18
  <T> T instantiate(Class<T> fixedFormatRecordClass) {
19
    try {
20 2 1. instantiate : Substituted 0 with 1 → KILLED
2. instantiate : removed call to java/lang/Class::getDeclaredConstructor → KILLED
      Constructor<T> constructor = fixedFormatRecordClass.getDeclaredConstructor();
21 3 1. instantiate : Substituted 0 with 1 → KILLED
2. instantiate : removed call to java/lang/reflect/Constructor::newInstance → KILLED
3. instantiate : replaced return value with null for com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiate → KILLED
      return constructor.newInstance();
22
    } catch (NoSuchMethodException e) {
23 2 1. instantiate : removed call to java/lang/Class::getDeclaringClass → KILLED
2. instantiate : replaced call to java/lang/Class::getDeclaringClass with receiver → KILLED
      Class<?> declaringClass = fixedFormatRecordClass.getDeclaringClass();
24 3 1. instantiate : removed conditional - replaced equality check with true → SURVIVED
2. instantiate : removed conditional - replaced equality check with false → KILLED
3. instantiate : negated conditional → KILLED
      if (declaringClass != null) {
25 2 1. instantiate : removed call to com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiateInnerClass → KILLED
2. instantiate : replaced return value with null for com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiate → KILLED
        return instantiateInnerClass(fixedFormatRecordClass, declaringClass, e);
26
      }
27 5 1. instantiate : Substituted 0 with 1 → NO_COVERAGE
2. instantiate : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → NO_COVERAGE
3. instantiate : Substituted 2 with 3 → NO_COVERAGE
4. instantiate : removed call to java/lang/String::format → NO_COVERAGE
5. instantiate : replaced call to java/lang/String::format with argument → NO_COVERAGE
      throw new FixedFormatException(format(
28
          "%s is missing a default constructor which is nessesary to be loaded through %s",
29 4 1. instantiate : removed call to java/lang/Class::getName → NO_COVERAGE
2. instantiate : removed call to java/lang/Object::getClass → NO_COVERAGE
3. instantiate : Substituted 1 with 0 → NO_COVERAGE
4. instantiate : removed call to java/lang/Class::getName → NO_COVERAGE
          fixedFormatRecordClass.getName(), getClass().getName()));
30
    } catch (Exception e) {
31 6 1. instantiate : removed call to java/lang/Class::getName → SURVIVED
2. instantiate : replaced call to java/lang/String::format with argument → SURVIVED
3. instantiate : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED
4. instantiate : Substituted 0 with 1 → KILLED
5. instantiate : Substituted 1 with 0 → KILLED
6. instantiate : removed call to java/lang/String::format → KILLED
      throw new FixedFormatException(format("unable to create instance of %s", fixedFormatRecordClass.getName()), e);
32
    }
33
  }
34
35
  private <T> T instantiateInnerClass(Class<T> innerClass, Class<?> declaringClass, Exception outerException) {
36
    Object declaringClassInstance;
37
    try {
38 2 1. instantiateInnerClass : removed call to java/lang/Class::getDeclaredConstructor → KILLED
2. instantiateInnerClass : Substituted 0 with 1 → KILLED
      Constructor<?> declaringClassConstructor = declaringClass.getDeclaredConstructor();
39 2 1. instantiateInnerClass : Substituted 0 with 1 → KILLED
2. instantiateInnerClass : removed call to java/lang/reflect/Constructor::newInstance → KILLED
      declaringClassInstance = declaringClassConstructor.newInstance();
40
    } catch (NoSuchMethodException dex) {
41 5 1. instantiateInnerClass : Substituted 3 with 4 → SURVIVED
2. instantiateInnerClass : Substituted 0 with 1 → SURVIVED
3. instantiateInnerClass : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED
4. instantiateInnerClass : replaced call to java/lang/String::format with argument → KILLED
5. instantiateInnerClass : removed call to java/lang/String::format → KILLED
      throw new FixedFormatException(format(
42
          "Trying to create instance of innerclass %s, but the declaring class %s is missing a default constructor which is nessesary to be loaded through %s",
43 6 1. instantiateInnerClass : removed call to java/lang/Class::getName → SURVIVED
2. instantiateInnerClass : removed call to java/lang/Class::getName → SURVIVED
3. instantiateInnerClass : Substituted 1 with 0 → SURVIVED
4. instantiateInnerClass : removed call to java/lang/Class::getName → SURVIVED
5. instantiateInnerClass : removed call to java/lang/Object::getClass → KILLED
6. instantiateInnerClass : Substituted 2 with 3 → KILLED
          innerClass.getName(), declaringClass.getName(), getClass().getName()));
44
    } catch (Exception de) {
45 5 1. instantiateInnerClass : Substituted 2 with 3 → SURVIVED
2. instantiateInnerClass : Substituted 0 with 1 → SURVIVED
3. instantiateInnerClass : replaced call to java/lang/String::format with argument → SURVIVED
4. instantiateInnerClass : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED
5. instantiateInnerClass : removed call to java/lang/String::format → KILLED
      throw new FixedFormatException(format(
46
          "unable to create instance of declaring class %s, which is needed to instansiate %s",
47 3 1. instantiateInnerClass : removed call to java/lang/Class::getName → SURVIVED
2. instantiateInnerClass : removed call to java/lang/Class::getName → SURVIVED
3. instantiateInnerClass : Substituted 1 with 0 → SURVIVED
          declaringClass.getName(), innerClass.getName()), outerException);
48
    }
49
50
    try {
51 3 1. instantiateInnerClass : Substituted 1 with 0 → KILLED
2. instantiateInnerClass : Substituted 0 with 1 → KILLED
3. instantiateInnerClass : removed call to java/lang/Class::getDeclaredConstructor → KILLED
      Constructor<T> constructor = innerClass.getDeclaredConstructor(declaringClass);
52 4 1. instantiateInnerClass : removed call to java/lang/reflect/Constructor::newInstance → KILLED
2. instantiateInnerClass : Substituted 1 with 0 → KILLED
3. instantiateInnerClass : replaced return value with null for com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiateInnerClass → KILLED
4. instantiateInnerClass : Substituted 0 with 1 → KILLED
      return constructor.newInstance(declaringClassInstance);
53
    } catch (NoSuchMethodException ex) {
54 5 1. instantiateInnerClass : Substituted 2 with 3 → SURVIVED
2. instantiateInnerClass : removed call to java/lang/String::format → KILLED
3. instantiateInnerClass : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED
4. instantiateInnerClass : Substituted 0 with 1 → KILLED
5. instantiateInnerClass : replaced call to java/lang/String::format with argument → KILLED
      throw new FixedFormatException(format(
55
          "%s is missing a default constructor which is nessesary to be loaded through %s",
56 4 1. instantiateInnerClass : removed call to java/lang/Class::getName → SURVIVED
2. instantiateInnerClass : removed call to java/lang/Class::getName → KILLED
3. instantiateInnerClass : removed call to java/lang/Object::getClass → KILLED
4. instantiateInnerClass : Substituted 1 with 0 → KILLED
          innerClass.getName(), getClass().getName()));
57
    } catch (Exception ex) {
58 6 1. instantiateInnerClass : replaced call to java/lang/String::format with argument → NO_COVERAGE
2. instantiateInnerClass : Substituted 1 with 0 → NO_COVERAGE
3. instantiateInnerClass : removed call to java/lang/String::format → NO_COVERAGE
4. instantiateInnerClass : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → NO_COVERAGE
5. instantiateInnerClass : Substituted 0 with 1 → NO_COVERAGE
6. instantiateInnerClass : removed call to java/lang/Class::getName → NO_COVERAGE
      throw new FixedFormatException(format("unable to create instance of %s", innerClass.getName()), outerException);
59
    }
60
  }
61
}

Mutations

20

1.1
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_staticNestedClass_returnsNewInstance()]
Substituted 0 with 1 → KILLED

2.2
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_staticNestedClass_returnsNewInstance()]
removed call to java/lang/Class::getDeclaredConstructor → KILLED

21

1.1
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_staticNestedClass_returnsNewInstance()]
Substituted 0 with 1 → KILLED

2.2
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_staticNestedClass_returnsNewInstance()]
removed call to java/lang/reflect/Constructor::newInstance → KILLED

3.3
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_staticNestedClass_returnsNewInstance()]
replaced return value with null for com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiate → KILLED

23

1.1
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
removed call to java/lang/Class::getDeclaringClass → KILLED

2.2
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
replaced call to java/lang/Class::getDeclaringClass with receiver → KILLED

24

1.1
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
removed conditional - replaced equality check with false → KILLED

2.2
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
negated conditional → KILLED

3.3
Location : instantiate
Killed by : none
removed conditional - replaced equality check with true → SURVIVED
Covering tests

25

1.1
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassMissingDefaultConstructor_throwsFixedFormatException()]
removed call to com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiateInnerClass → KILLED

2.2
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
replaced return value with null for com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiate → KILLED

27

1.1
Location : instantiate
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

2.2
Location : instantiate
Killed by : none
removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → NO_COVERAGE

3.3
Location : instantiate
Killed by : none
Substituted 2 with 3 → NO_COVERAGE

4.4
Location : instantiate
Killed by : none
removed call to java/lang/String::format → NO_COVERAGE

5.5
Location : instantiate
Killed by : none
replaced call to java/lang/String::format with argument → NO_COVERAGE

29

1.1
Location : instantiate
Killed by : none
removed call to java/lang/Class::getName → NO_COVERAGE

2.2
Location : instantiate
Killed by : none
removed call to java/lang/Object::getClass → NO_COVERAGE

3.3
Location : instantiate
Killed by : none
Substituted 1 with 0 → NO_COVERAGE

4.4
Location : instantiate
Killed by : none
removed call to java/lang/Class::getName → NO_COVERAGE

31

1.1
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_privateNoArgConstructor_throwsFixedFormatException()]
removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED

2.2
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_privateNoArgConstructor_throwsFixedFormatException()]
Substituted 0 with 1 → KILLED

3.3
Location : instantiate
Killed by : none
removed call to java/lang/Class::getName → SURVIVED
Covering tests

4.4
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_privateNoArgConstructor_throwsFixedFormatException()]
Substituted 1 with 0 → KILLED

5.5
Location : instantiate
Killed by : none
replaced call to java/lang/String::format with argument → SURVIVED Covering tests

6.6
Location : instantiate
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_privateNoArgConstructor_throwsFixedFormatException()]
removed call to java/lang/String::format → KILLED

38

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassMissingDefaultConstructor_exceptionMentionsBothClasses()]
removed call to java/lang/Class::getDeclaredConstructor → KILLED

2.2
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
Substituted 0 with 1 → KILLED

39

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
Substituted 0 with 1 → KILLED

2.2
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassConstructorThrows_throwsFixedFormatExceptionWithMessage()]
removed call to java/lang/reflect/Constructor::newInstance → KILLED

41

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassMissingDefaultConstructor_throwsFixedFormatException()]
removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED

2.2
Location : instantiateInnerClass
Killed by : none
Substituted 3 with 4 → SURVIVED
Covering tests

3.3
Location : instantiateInnerClass
Killed by : none
Substituted 0 with 1 → SURVIVED Covering tests

4.4
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassMissingDefaultConstructor_exceptionMentionsBothClasses()]
replaced call to java/lang/String::format with argument → KILLED

5.5
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassMissingDefaultConstructor_exceptionMentionsBothClasses()]
removed call to java/lang/String::format → KILLED

43

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassMissingDefaultConstructor_throwsFixedFormatException()]
removed call to java/lang/Object::getClass → KILLED

2.2
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/Class::getName → SURVIVED
Covering tests

3.3
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassMissingDefaultConstructor_throwsFixedFormatException()]
Substituted 2 with 3 → KILLED

4.4
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/Class::getName → SURVIVED Covering tests

5.5
Location : instantiateInnerClass
Killed by : none
Substituted 1 with 0 → SURVIVED Covering tests

6.6
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/Class::getName → SURVIVED Covering tests

45

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassConstructorThrows_throwsFixedFormatExceptionWithMessage()]
removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED

2.2
Location : instantiateInnerClass
Killed by : none
Substituted 2 with 3 → SURVIVED
Covering tests

3.3
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_declaringClassConstructorThrows_throwsFixedFormatExceptionWithMessage()]
removed call to java/lang/String::format → KILLED

4.4
Location : instantiateInnerClass
Killed by : none
Substituted 0 with 1 → SURVIVED Covering tests

5.5
Location : instantiateInnerClass
Killed by : none
replaced call to java/lang/String::format with argument → SURVIVED Covering tests

47

1.1
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/Class::getName → SURVIVED
Covering tests

2.2
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/Class::getName → SURVIVED Covering tests

3.3
Location : instantiateInnerClass
Killed by : none
Substituted 1 with 0 → SURVIVED Covering tests

51

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
Substituted 1 with 0 → KILLED

2.2
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
Substituted 0 with 1 → KILLED

3.3
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
removed call to java/lang/Class::getDeclaredConstructor → KILLED

52

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
removed call to java/lang/reflect/Constructor::newInstance → KILLED

2.2
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
Substituted 1 with 0 → KILLED

3.3
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
replaced return value with null for com/ancientprogramming/fixedformat4j/format/impl/RecordInstantiator::instantiateInnerClass → KILLED

4.4
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_innerClass_returnsNewInstance()]
Substituted 0 with 1 → KILLED

54

1.1
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_missingDefaultConstructor_exceptionMentionsClassName()]
removed call to java/lang/String::format → KILLED

2.2
Location : instantiateInnerClass
Killed by : none
Substituted 2 with 3 → SURVIVED
Covering tests

3.3
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_missingDefaultConstructor_throwsFixedFormatException()]
removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → KILLED

4.4
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_missingDefaultConstructor_exceptionMentionsClassName()]
Substituted 0 with 1 → KILLED

5.5
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_missingDefaultConstructor_exceptionMentionsClassName()]
replaced call to java/lang/String::format with argument → KILLED

56

1.1
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/Class::getName → SURVIVED
Covering tests

2.2
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_missingDefaultConstructor_exceptionMentionsClassName()]
removed call to java/lang/Class::getName → KILLED

3.3
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_missingDefaultConstructor_throwsFixedFormatException()]
removed call to java/lang/Object::getClass → KILLED

4.4
Location : instantiateInnerClass
Killed by : com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.format.impl.TestRecordInstantiator]/[method:instantiate_missingDefaultConstructor_exceptionMentionsClassName()]
Substituted 1 with 0 → KILLED

58

1.1
Location : instantiateInnerClass
Killed by : none
replaced call to java/lang/String::format with argument → NO_COVERAGE

2.2
Location : instantiateInnerClass
Killed by : none
Substituted 1 with 0 → NO_COVERAGE

3.3
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/String::format → NO_COVERAGE

4.4
Location : instantiateInnerClass
Killed by : none
removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatException::<init> → NO_COVERAGE

5.5
Location : instantiateInnerClass
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

6.6
Location : instantiateInnerClass
Killed by : none
removed call to java/lang/Class::getName → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.23.1 support