• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 20210191346

14 Dec 2025 03:32PM UTC coverage: 19.514% (-33.5%) from 53.061%
20210191346

push

github

rubensworks
Remove deprecations

663 of 8728 branches covered (7.6%)

Branch coverage included in aggregate %.

6786 of 29445 relevant lines covered (23.05%)

1.09 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.33
/src/main/java/org/cyclops/integrateddynamics/core/evaluate/operator/GeneralChoiceOperator.java
1
package org.cyclops.integrateddynamics.core.evaluate.operator;
2

3
import net.minecraft.network.chat.Component;
4
import net.minecraft.network.chat.MutableComponent;
5
import org.apache.commons.lang3.tuple.Pair;
6
import org.cyclops.integrateddynamics.api.evaluate.EvaluationException;
7
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
8
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueType;
9
import org.cyclops.integrateddynamics.api.evaluate.variable.IVariable;
10
import org.cyclops.integrateddynamics.api.logicprogrammer.IConfigRenderPattern;
11
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueHelpers;
12
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueTypes;
13
import org.cyclops.integrateddynamics.core.helper.L10NValues;
14

15
/**
16
 * A general choice operator.
17
 * @author rubensworks
18
 */
19
public class GeneralChoiceOperator extends GeneralOperator {
20

21
    public GeneralChoiceOperator(String symbol, String operatorName, String interactName) {
22
        super(symbol, operatorName, interactName, new IValueType[]{ValueTypes.BOOLEAN, ValueTypes.CATEGORY_ANY, ValueTypes.CATEGORY_ANY}, ValueTypes.CATEGORY_ANY, new IFunction() {
35✔
23
            @Override
24
            public IValue evaluate(SafeVariablesGetter variables) throws EvaluationException {
25
                boolean a = variables.getValue(0, ValueTypes.BOOLEAN).getRawValue();
7✔
26
                return a ? variables.getValue(1) : variables.getValue(2);
10✔
27
            }
28
        }, new IConfigRenderPattern.Base(100, 22, new Pair[]{Pair.of(6, 2), Pair.of(60, 2) , Pair.of(80, 2)}, Pair.of(40, 2)));
27✔
29
    }
1✔
30

31
    @Override
32
    public MutableComponent validateTypes(IValueType[] input) {
33
        // Input size checking
34
        int requiredInputLength = getRequiredInputLength();
3✔
35
        if(input.length != requiredInputLength) {
4✔
36
            return Component.translatable(L10NValues.OPERATOR_ERROR_WRONGINPUTLENGTH,
8✔
37
                    this.getOperatorName(), input.length, requiredInputLength);
13✔
38
        }
39
        // Input types checking
40
        IValueType temporarySecondInputType = null;
2✔
41
        for(int i = 0; i < requiredInputLength; i++) {
7✔
42
            IValueType inputType = input[i];
4✔
43
            if(inputType == null) {
2!
44
                return Component.translatable(L10NValues.OPERATOR_ERROR_NULLTYPE, this.getOperatorName(), Integer.toString(i));
×
45
            }
46
            if(i == 0 && !ValueHelpers.correspondsTo(getInputTypes()[i], inputType)) {
9✔
47
                return Component.translatable(L10NValues.OPERATOR_ERROR_WRONGTYPE,
8✔
48
                        this.getOperatorName(), Component.translatable(inputType.getTranslationKey()),
11✔
49
                        Integer.toString(i), Component.translatable(getInputTypes()[i].getTranslationKey()));
11✔
50
            } else if(i == 1) {
3✔
51
                temporarySecondInputType = inputType;
3✔
52
            } else if(i == 2) {
3✔
53
                if(!ValueHelpers.correspondsTo(temporarySecondInputType, inputType)) {
4✔
54
                    return Component.translatable(L10NValues.OPERATOR_ERROR_WRONGTYPE,
8✔
55
                            this.getOperatorName(), Component.translatable(inputType.getTranslationKey()),
11✔
56
                            Integer.toString(i), Component.translatable(temporarySecondInputType.getTranslationKey()));
8✔
57
                }
58
            }
59
        }
60
        return null;
2✔
61
    }
62

63
    @Override
64
    public IValueType getConditionalOutputType(IVariable[] input) {
65
        return input[1].getType();
×
66
    }
67

68
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc