• 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

0.0
/src/main/java/org/cyclops/integrateddynamics/gametest/integration/TestFluidStackOperators.java
1
package org.cyclops.integrateddynamics.gametest.integration;
2

3
import net.minecraft.core.component.DataComponents;
4
import net.minecraft.nbt.CompoundTag;
5
import net.minecraft.nbt.IntTag;
6
import net.minecraft.sounds.SoundEvents;
7
import net.minecraft.world.item.Items;
8
import net.minecraft.world.item.Rarity;
9
import net.minecraft.world.level.block.Blocks;
10
import net.minecraft.world.level.material.Fluids;
11
import net.neoforged.neoforge.fluids.FluidStack;
12
import org.cyclops.cyclopscore.helper.IModHelpersNeoForge;
13
import org.cyclops.integrateddynamics.api.evaluate.EvaluationException;
14
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
15
import org.cyclops.integrateddynamics.api.evaluate.variable.IVariable;
16
import org.cyclops.integrateddynamics.core.evaluate.operator.Operators;
17
import org.cyclops.integrateddynamics.core.evaluate.variable.*;
18
import org.cyclops.integrateddynamics.core.helper.Helpers;
19
import org.cyclops.integrateddynamics.core.test.IntegrationBefore;
20
import org.cyclops.integrateddynamics.core.test.IntegrationTest;
21
import org.cyclops.integrateddynamics.core.test.TestHelpers;
22

23
/**
24
 * Test the different logical operators.
25
 * @author rubensworks
26
 */
27
public class TestFluidStackOperators {
×
28

29
    private static final DummyValueType DUMMY_TYPE = DummyValueType.TYPE;
×
30
    private static final DummyVariable<DummyValueType.DummyValue> DUMMY_VARIABLE =
×
31
            new DummyVariable<DummyValueType.DummyValue>(DUMMY_TYPE, DummyValueType.DummyValue.of());
×
32

33
    private DummyVariableFluidStack eBucketLava;
34
    private DummyVariableFluidStack eBucketWater;
35
    private DummyVariableFluidStack eBucketEmpty;
36
    private DummyVariableFluidStack eWater100;
37
    private DummyVariableFluidStack eWater100Tag;
38
    private DummyVariable<ValueTypeInteger.ValueInteger> i99;
39
    private DummyVariable<ValueTypeString.ValueString> sDamage;
40
    private DummyVariable<ValueTypeNbt.ValueNbt> t4;
41
    private DummyVariable<ValueTypeString.ValueString> sWater;
42

43
    @IntegrationBefore
44
    public void before() {
45
        eBucketLava = new DummyVariableFluidStack(ValueObjectTypeFluidStack.ValueFluidStack.of(new FluidStack(Fluids.LAVA, IModHelpersNeoForge.get().getFluidHelpers().getBucketVolume())));
×
46
        eBucketWater = new DummyVariableFluidStack(ValueObjectTypeFluidStack.ValueFluidStack.of(new FluidStack(Fluids.WATER, IModHelpersNeoForge.get().getFluidHelpers().getBucketVolume())));
×
47
        eBucketEmpty = new DummyVariableFluidStack(ValueObjectTypeFluidStack.ValueFluidStack.of(FluidStack.EMPTY));
×
48
        eWater100 = new DummyVariableFluidStack(ValueObjectTypeFluidStack.ValueFluidStack.of(new FluidStack(Fluids.WATER, 100)));
×
49
        eWater100Tag = new DummyVariableFluidStack(ValueObjectTypeFluidStack.ValueFluidStack.of(new FluidStack(Fluids.WATER, 100)));
×
50
        eWater100Tag.getValue().getRawValue().set(DataComponents.DAMAGE, 3);
×
51
        i99 = new DummyVariable<>(ValueTypes.INTEGER, ValueTypeInteger.ValueInteger.of(99));
×
52
        sDamage = new DummyVariable<>(ValueTypes.STRING, ValueTypeString.ValueString.of("minecraft:damage"));
×
53
        t4 = new DummyVariable<>(ValueTypes.NBT, ValueTypeNbt.ValueNbt.of(IntTag.valueOf(4)));
×
54

55
        i99 = new DummyVariable<>(ValueTypes.INTEGER, ValueTypeInteger.ValueInteger.of(99));
×
56

57
        sWater = new DummyVariable<>(ValueTypes.STRING, ValueTypeString.ValueString.of("minecraft:water"));
×
58

59
        CompoundTag tag = new CompoundTag();
×
60
        tag.putInt("Damage", 51);
×
61
    }
×
62

63
    /**
64
     * ----------------------------------- AMOUNT -----------------------------------
65
     */
66

67
    @IntegrationTest
68
    public void testAmount() throws EvaluationException {
69
        IValue res1 = Operators.OBJECT_FLUIDSTACK_AMOUNT.evaluate(new IVariable[]{eBucketLava});
×
70
        Asserts.check(res1 instanceof ValueTypeInteger.ValueInteger, "result is an integer");
×
71
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res1).getRawValue(), IModHelpersNeoForge.get().getFluidHelpers().getBucketVolume(), "amount(lava:1000) = 1000");
×
72

73
        IValue res2 = Operators.OBJECT_FLUIDSTACK_AMOUNT.evaluate(new IVariable[]{eBucketWater});
×
74
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res2).getRawValue(), IModHelpersNeoForge.get().getFluidHelpers().getBucketVolume(), "amount(water:1000) = 1000");
×
75

76
        IValue res3 = Operators.OBJECT_FLUIDSTACK_AMOUNT.evaluate(new IVariable[]{eWater100});
×
77
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res3).getRawValue(), 100, "amount(water:100) = 100");
×
78
    }
×
79

80
    @IntegrationTest(expected = EvaluationException.class)
81
    public void testInvalidInputSizeAmountLarge() throws EvaluationException {
82
        Operators.OBJECT_FLUIDSTACK_AMOUNT.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
83
    }
×
84

85
    @IntegrationTest(expected = EvaluationException.class)
86
    public void testInvalidInputSizeAmountSmall() throws EvaluationException {
87
        Operators.OBJECT_FLUIDSTACK_AMOUNT.evaluate(new IVariable[]{});
×
88
    }
×
89

90
    @IntegrationTest(expected = EvaluationException.class)
91
    public void testInvalidInputTypeAmount() throws EvaluationException {
92
        Operators.OBJECT_FLUIDSTACK_AMOUNT.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
93
    }
×
94

95
    /**
96
     * ----------------------------------- BLOCK -----------------------------------
97
     */
98

99
    @IntegrationTest
100
    public void testBlock() throws EvaluationException {
101
        IValue res1 = Operators.OBJECT_FLUIDSTACK_BLOCK.evaluate(new IVariable[]{eBucketLava});
×
102
        Asserts.check(res1 instanceof ValueObjectTypeBlock.ValueBlock, "result is a block");
×
103
        TestHelpers.assertEqual(((ValueObjectTypeBlock.ValueBlock) res1).getRawValue().get(), Blocks.LAVA.defaultBlockState(), "block(lava) = lava");
×
104

105
        IValue res2 = Operators.OBJECT_FLUIDSTACK_BLOCK.evaluate(new IVariable[]{eBucketWater});
×
106
        TestHelpers.assertEqual(((ValueObjectTypeBlock.ValueBlock) res2).getRawValue().get(), Blocks.WATER.defaultBlockState(), "block(water) = water");
×
107
    }
×
108

109
    @IntegrationTest(expected = EvaluationException.class)
110
    public void testInvalidInputSizeBlockLarge() throws EvaluationException {
111
        Operators.OBJECT_FLUIDSTACK_BLOCK.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
112
    }
×
113

114
    @IntegrationTest(expected = EvaluationException.class)
115
    public void testInvalidInputSizeBlockSmall() throws EvaluationException {
116
        Operators.OBJECT_FLUIDSTACK_BLOCK.evaluate(new IVariable[]{});
×
117
    }
×
118

119
    @IntegrationTest(expected = EvaluationException.class)
120
    public void testInvalidInputTypeBlock() throws EvaluationException {
121
        Operators.OBJECT_FLUIDSTACK_BLOCK.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
122
    }
×
123

124
    /**
125
     * ----------------------------------- LIGHT_LEVEL -----------------------------------
126
     */
127

128
    @IntegrationTest
129
    public void testLightLevel() throws EvaluationException {
130
        IValue res1 = Operators.OBJECT_FLUIDSTACK_LIGHT_LEVEL.evaluate(new IVariable[]{eBucketLava});
×
131
        Asserts.check(res1 instanceof ValueTypeInteger.ValueInteger, "result is an integer");
×
132
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res1).getRawValue(), 15, "lightLevel(lava) = 15");
×
133

134
        IValue res2 = Operators.OBJECT_FLUIDSTACK_LIGHT_LEVEL.evaluate(new IVariable[]{eBucketWater});
×
135
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res2).getRawValue(), 0, "lightLevel(water) = 0");
×
136
    }
×
137

138
    @IntegrationTest(expected = EvaluationException.class)
139
    public void testInvalidInputSizeLightLevelLarge() throws EvaluationException {
140
        Operators.OBJECT_FLUIDSTACK_LIGHT_LEVEL.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
141
    }
×
142

143
    @IntegrationTest(expected = EvaluationException.class)
144
    public void testInvalidInputSizeLightLevelSmall() throws EvaluationException {
145
        Operators.OBJECT_FLUIDSTACK_LIGHT_LEVEL.evaluate(new IVariable[]{});
×
146
    }
×
147

148
    @IntegrationTest(expected = EvaluationException.class)
149
    public void testInvalidInputTypeLightLevel() throws EvaluationException {
150
        Operators.OBJECT_FLUIDSTACK_LIGHT_LEVEL.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
151
    }
×
152

153
    /**
154
     * ----------------------------------- DENSITY -----------------------------------
155
     */
156

157
    @IntegrationTest
158
    public void testDensity() throws EvaluationException {
159
        IValue res1 = Operators.OBJECT_FLUIDSTACK_DENSITY.evaluate(new IVariable[]{eBucketLava});
×
160
        Asserts.check(res1 instanceof ValueTypeInteger.ValueInteger, "result is an integer");
×
161
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res1).getRawValue(), 3000, "density(lava) = 1000");
×
162

163
        IValue res2 = Operators.OBJECT_FLUIDSTACK_DENSITY.evaluate(new IVariable[]{eBucketWater});
×
164
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res2).getRawValue(), 1000, "density(water) = 1000");
×
165
    }
×
166

167
    @IntegrationTest(expected = EvaluationException.class)
168
    public void testInvalidInputSizeDensityLarge() throws EvaluationException {
169
        Operators.OBJECT_FLUIDSTACK_DENSITY.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
170
    }
×
171

172
    @IntegrationTest(expected = EvaluationException.class)
173
    public void testInvalidInputSizeDensitySmall() throws EvaluationException {
174
        Operators.OBJECT_FLUIDSTACK_DENSITY.evaluate(new IVariable[]{});
×
175
    }
×
176

177
    @IntegrationTest(expected = EvaluationException.class)
178
    public void testInvalidInputTypeDensity() throws EvaluationException {
179
        Operators.OBJECT_FLUIDSTACK_DENSITY.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
180
    }
×
181

182
    /**
183
     * ----------------------------------- TEMPERATURE -----------------------------------
184
     */
185

186
    @IntegrationTest
187
    public void testTemperature() throws EvaluationException {
188
        IValue res1 = Operators.OBJECT_FLUIDSTACK_TEMPERATURE.evaluate(new IVariable[]{eBucketLava});
×
189
        Asserts.check(res1 instanceof ValueTypeInteger.ValueInteger, "result is an integer");
×
190
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res1).getRawValue(), 1300, "temperature(lava) = 1300");
×
191

192
        IValue res2 = Operators.OBJECT_FLUIDSTACK_TEMPERATURE.evaluate(new IVariable[]{eBucketWater});
×
193
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res2).getRawValue(), 300, "temperature(water) = 300");
×
194
    }
×
195

196
    @IntegrationTest(expected = EvaluationException.class)
197
    public void testInvalidInputSizeTemperatureLarge() throws EvaluationException {
198
        Operators.OBJECT_FLUIDSTACK_TEMPERATURE.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
199
    }
×
200

201
    @IntegrationTest(expected = EvaluationException.class)
202
    public void testInvalidInputSizeTemperatureSmall() throws EvaluationException {
203
        Operators.OBJECT_FLUIDSTACK_TEMPERATURE.evaluate(new IVariable[]{});
×
204
    }
×
205

206
    @IntegrationTest(expected = EvaluationException.class)
207
    public void testInvalidInputTypeTemperature() throws EvaluationException {
208
        Operators.OBJECT_FLUIDSTACK_TEMPERATURE.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
209
    }
×
210

211
    /**
212
     * ----------------------------------- VISCOSITY -----------------------------------
213
     */
214

215
    @IntegrationTest
216
    public void testViscosity() throws EvaluationException {
217
        IValue res1 = Operators.OBJECT_FLUIDSTACK_VISCOSITY.evaluate(new IVariable[]{eBucketLava});
×
218
        Asserts.check(res1 instanceof ValueTypeInteger.ValueInteger, "result is an integer");
×
219
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res1).getRawValue(), 6000, "viscosity(lava) = 6000");
×
220

221
        IValue res2 = Operators.OBJECT_FLUIDSTACK_VISCOSITY.evaluate(new IVariable[]{eBucketWater});
×
222
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res2).getRawValue(), 1000, "viscosity(water) = 1000");
×
223
    }
×
224

225
    @IntegrationTest(expected = EvaluationException.class)
226
    public void testInvalidInputSizeViscosityLarge() throws EvaluationException {
227
        Operators.OBJECT_FLUIDSTACK_VISCOSITY.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
228
    }
×
229

230
    @IntegrationTest(expected = EvaluationException.class)
231
    public void testInvalidInputSizeViscositySmall() throws EvaluationException {
232
        Operators.OBJECT_FLUIDSTACK_VISCOSITY.evaluate(new IVariable[]{});
×
233
    }
×
234

235
    @IntegrationTest(expected = EvaluationException.class)
236
    public void testInvalidInputTypeViscosity() throws EvaluationException {
237
        Operators.OBJECT_FLUIDSTACK_VISCOSITY.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
238
    }
×
239

240
    /**
241
     * ----------------------------------- IS_LIGHTER_THAN_AIR -----------------------------------
242
     */
243

244
    @IntegrationTest
245
    public void testIsLighterThanAir() throws EvaluationException {
246
        IValue res1 = Operators.OBJECT_FLUIDSTACK_IS_LIGHTER_THAN_AIR.evaluate(new IVariable[]{eBucketLava});
×
247
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
248
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "isgaseous(lava) = false");
×
249

250
        IValue res2 = Operators.OBJECT_FLUIDSTACK_IS_LIGHTER_THAN_AIR.evaluate(new IVariable[]{eBucketWater});
×
251
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), false, "isgaseous(water) = false");
×
252
    }
×
253

254
    @IntegrationTest(expected = EvaluationException.class)
255
    public void testInvalidInputSizeIsLighterThanAirLarge() throws EvaluationException {
256
        Operators.OBJECT_FLUIDSTACK_IS_LIGHTER_THAN_AIR.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
257
    }
×
258

259
    @IntegrationTest(expected = EvaluationException.class)
260
    public void testInvalidInputSizeIsLighterThanAirSmall() throws EvaluationException {
261
        Operators.OBJECT_FLUIDSTACK_IS_LIGHTER_THAN_AIR.evaluate(new IVariable[]{});
×
262
    }
×
263

264
    @IntegrationTest(expected = EvaluationException.class)
265
    public void testInvalidInputTypeIsLighterThanAir() throws EvaluationException {
266
        Operators.OBJECT_FLUIDSTACK_IS_LIGHTER_THAN_AIR.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
267
    }
×
268

269
    /**
270
     * ----------------------------------- RARITY -----------------------------------
271
     */
272

273
    @IntegrationTest
274
    public void testRarity() throws EvaluationException {
275
        IValue res1 = Operators.OBJECT_FLUIDSTACK_RARITY.evaluate(new IVariable[]{eBucketLava});
×
276
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is an integer");
×
277
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), Rarity.COMMON.name(), "rarity(lava) = common");
×
278

279
        IValue res2 = Operators.OBJECT_FLUIDSTACK_RARITY.evaluate(new IVariable[]{eBucketWater});
×
280
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res2).getRawValue(), Rarity.COMMON.name(), "rarity(water) = common");
×
281
    }
×
282

283
    @IntegrationTest(expected = EvaluationException.class)
284
    public void testInvalidInputSizeRarityLarge() throws EvaluationException {
285
        Operators.OBJECT_FLUIDSTACK_RARITY.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
286
    }
×
287

288
    @IntegrationTest(expected = EvaluationException.class)
289
    public void testInvalidInputSizeRaritySmall() throws EvaluationException {
290
        Operators.OBJECT_FLUIDSTACK_RARITY.evaluate(new IVariable[]{});
×
291
    }
×
292

293
    @IntegrationTest(expected = EvaluationException.class)
294
    public void testInvalidInputTypeRarity() throws EvaluationException {
295
        Operators.OBJECT_FLUIDSTACK_RARITY.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
296
    }
×
297

298
    /**
299
     * ----------------------------------- SOUND_BUCKET_EMPTY -----------------------------------
300
     */
301

302
    @IntegrationTest
303
    public void testSoundBucketEmpty() throws EvaluationException {
304
        IValue res1 = Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_EMPTY.evaluate(new IVariable[]{eBucketLava});
×
305
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
306
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), SoundEvents.BUCKET_EMPTY_LAVA.location().toString(), "soundBucketEmpty(lava) = bucket_empty");
×
307

308
        IValue res2 = Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_EMPTY.evaluate(new IVariable[]{eBucketWater});
×
309
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res2).getRawValue(), SoundEvents.BUCKET_EMPTY.location().toString(), "soundBucketEmpty(water) = bucket_empty");
×
310
    }
×
311

312
    @IntegrationTest(expected = EvaluationException.class)
313
    public void testInvalidInputSizeSoundBucketEmptyLarge() throws EvaluationException {
314
        Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_EMPTY.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
315
    }
×
316

317
    @IntegrationTest(expected = EvaluationException.class)
318
    public void testInvalidInputSizeSoundBucketEmptySmall() throws EvaluationException {
319
        Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_EMPTY.evaluate(new IVariable[]{});
×
320
    }
×
321

322
    @IntegrationTest(expected = EvaluationException.class)
323
    public void testInvalidInputTypeSoundBucketEmpty() throws EvaluationException {
324
        Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_EMPTY.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
325
    }
×
326

327
    /**
328
     * ----------------------------------- SOUND_BUCKET_FILL -----------------------------------
329
     */
330

331
    @IntegrationTest
332
    public void testSoundBucketFill() throws EvaluationException {
333
        IValue res1 = Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_FILL.evaluate(new IVariable[]{eBucketLava});
×
334
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
335
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), SoundEvents.BUCKET_FILL_LAVA.location().toString(), "soundBucketFill(lava) = bucket_fill");
×
336

337
        IValue res2 = Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_FILL.evaluate(new IVariable[]{eBucketWater});
×
338
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res2).getRawValue(), SoundEvents.BUCKET_FILL.location().toString(), "soundBucketFill(water) = bucket_fill");
×
339
    }
×
340

341
    @IntegrationTest(expected = EvaluationException.class)
342
    public void testInvalidInputSizeSoundBucketFillLarge() throws EvaluationException {
343
        Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_FILL.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
344
    }
×
345

346
    @IntegrationTest(expected = EvaluationException.class)
347
    public void testInvalidInputSizeSoundBucketFillSmall() throws EvaluationException {
348
        Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_FILL.evaluate(new IVariable[]{});
×
349
    }
×
350

351
    @IntegrationTest(expected = EvaluationException.class)
352
    public void testInvalidInputTypeSoundBucketFill() throws EvaluationException {
353
        Operators.OBJECT_FLUIDSTACK_SOUND_BUCKET_FILL.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
354
    }
×
355

356
    /**
357
     * ----------------------------------- SOUND_FLUID_VAPORIZE -----------------------------------
358
     */
359

360
    @IntegrationTest
361
    public void testSoundFluidVaporize() throws EvaluationException {
362
        IValue res1 = Operators.OBJECT_FLUIDSTACK_SOUND_FLUID_VAPORIZE.evaluate(new IVariable[]{eBucketLava});
×
363
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
364
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), "", "soundFluidVaporize(lava) = ");
×
365

366
        IValue res2 = Operators.OBJECT_FLUIDSTACK_SOUND_FLUID_VAPORIZE.evaluate(new IVariable[]{eBucketWater});
×
367
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res2).getRawValue(), SoundEvents.FIRE_EXTINGUISH.location().toString(), "soundFluidVaporize(water) = ");
×
368
    }
×
369

370
    @IntegrationTest(expected = EvaluationException.class)
371
    public void testInvalidInputSizeSoundFluidVaporizeLarge() throws EvaluationException {
372
        Operators.OBJECT_FLUIDSTACK_SOUND_FLUID_VAPORIZE.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
373
    }
×
374

375
    @IntegrationTest(expected = EvaluationException.class)
376
    public void testInvalidInputSizeSoundFluidVaporizeSmall() throws EvaluationException {
377
        Operators.OBJECT_FLUIDSTACK_SOUND_FLUID_VAPORIZE.evaluate(new IVariable[]{});
×
378
    }
×
379

380
    @IntegrationTest(expected = EvaluationException.class)
381
    public void testInvalidInputTypeSoundFluidVaporize() throws EvaluationException {
382
        Operators.OBJECT_FLUIDSTACK_SOUND_FLUID_VAPORIZE.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
383
    }
×
384

385
    /**
386
     * ----------------------------------- BUCKET -----------------------------------
387
     */
388

389
    @IntegrationTest
390
    public void testBucket() throws EvaluationException {
391
        IValue res1 = Operators.OBJECT_FLUIDSTACK_BUCKET.evaluate(new IVariable[]{eBucketLava});
×
392
        Asserts.check(res1 instanceof ValueObjectTypeItemStack.ValueItemStack, "result is an item");
×
393
        TestHelpers.assertEqual(((ValueObjectTypeItemStack.ValueItemStack) res1).getRawValue().getItem(), Items.LAVA_BUCKET, "bucket(lava) = bucket_lava");
×
394

395
        IValue res2 = Operators.OBJECT_FLUIDSTACK_BUCKET.evaluate(new IVariable[]{eBucketWater});
×
396
        TestHelpers.assertEqual(((ValueObjectTypeItemStack.ValueItemStack) res2).getRawValue().getItem(), Items.WATER_BUCKET, "bucket(water) = bucket_water");
×
397
    }
×
398

399
    @IntegrationTest(expected = EvaluationException.class)
400
    public void testInvalidInputSizeBucketLarge() throws EvaluationException {
401
        Operators.OBJECT_FLUIDSTACK_BUCKET.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
402
    }
×
403

404
    @IntegrationTest(expected = EvaluationException.class)
405
    public void testInvalidInputSizeBucketSmall() throws EvaluationException {
406
        Operators.OBJECT_FLUIDSTACK_BUCKET.evaluate(new IVariable[]{});
×
407
    }
×
408

409
    @IntegrationTest(expected = EvaluationException.class)
410
    public void testInvalidInputTypeBucket() throws EvaluationException {
411
        Operators.OBJECT_FLUIDSTACK_BUCKET.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
412
    }
×
413

414
    /**
415
     * ----------------------------------- ISRAWFLUIDEQUAL -----------------------------------
416
     */
417

418
    @IntegrationTest
419
    public void testIsRawFluidEqual() throws EvaluationException {
420
        IValue res1 = Operators.OBJECT_FLUIDSTACK_ISRAWFLUIDEQUAL.evaluate(new IVariable[]{eBucketLava, eBucketWater});
×
421
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
422
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "israwfluidequal(lava, water) = false");
×
423

424
        IValue res2 = Operators.OBJECT_FLUIDSTACK_ISRAWFLUIDEQUAL.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
425
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "israwfluidequal(lava:1000, lava:1000) = true");
×
426

427
        IValue res3 = Operators.OBJECT_FLUIDSTACK_ISRAWFLUIDEQUAL.evaluate(new IVariable[]{eBucketWater, eWater100});
×
428
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), true, "israwfluidequal(water:1000, water:100) = false");
×
429
    }
×
430

431
    @IntegrationTest(expected = EvaluationException.class)
432
    public void testInvalidInputSizeIsRawFluidEqualLarge() throws EvaluationException {
433
        Operators.OBJECT_FLUIDSTACK_ISRAWFLUIDEQUAL.evaluate(new IVariable[]{eBucketLava, eBucketLava, eBucketLava});
×
434
    }
×
435

436
    @IntegrationTest(expected = EvaluationException.class)
437
    public void testInvalidInputSizeIsRawFluidEqualSmall() throws EvaluationException {
438
        Operators.OBJECT_FLUIDSTACK_ISRAWFLUIDEQUAL.evaluate(new IVariable[]{eBucketLava});
×
439
    }
×
440

441
    @IntegrationTest(expected = EvaluationException.class)
442
    public void testInvalidInputTypeIsRawFluidEqual() throws EvaluationException {
443
        Operators.OBJECT_FLUIDSTACK_ISRAWFLUIDEQUAL.evaluate(new IVariable[]{DUMMY_VARIABLE, DUMMY_VARIABLE});
×
444
    }
×
445

446
    /**
447
     * ----------------------------------- MODNAME -----------------------------------
448
     */
449

450
    @IntegrationTest
451
    public void testFluidModName() throws EvaluationException {
452
        IValue res1 = Operators.OBJECT_FLUIDSTACK_MODNAME.evaluate(new IVariable[]{eBucketLava});
×
453
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
454
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), "Minecraft", "modname(lava) = Minecraft");
×
455
    }
×
456

457
    @IntegrationTest(expected = EvaluationException.class)
458
    public void testInvalidInputSizeModNameLarge() throws EvaluationException {
459
        Operators.OBJECT_FLUIDSTACK_MODNAME.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
460
    }
×
461

462
    @IntegrationTest(expected = EvaluationException.class)
463
    public void testInvalidInputSizeModNameSmall() throws EvaluationException {
464
        Operators.OBJECT_FLUIDSTACK_MODNAME.evaluate(new IVariable[]{});
×
465
    }
×
466

467
    @IntegrationTest(expected = EvaluationException.class)
468
    public void testInvalidInputTypeModName() throws EvaluationException {
469
        Operators.OBJECT_FLUIDSTACK_MODNAME.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
470
    }
×
471

472
    /**
473
     * ----------------------------------- DATA -----------------------------------
474
     */
475

476
    @IntegrationTest
477
    public void testFluidNbt() throws EvaluationException {
478
        IValue res1 = Operators.OBJECT_FLUIDSTACK_DATA.evaluate(new IVariable[]{eBucketLava});
×
479
        Asserts.check(res1 instanceof ValueTypeNbt.ValueNbt, "result is an nbt tag");
×
480
        TestHelpers.assertEqual(((ValueTypeNbt.ValueNbt) res1).getRawValue().isPresent(), false, "data(lava) = null");
×
481

482
        IValue res2 = Operators.OBJECT_FLUIDSTACK_DATA.evaluate(new IVariable[]{eWater100Tag});
×
483
        CompoundTag tag = new CompoundTag();
×
484
        tag.putInt("minecraft:damage", 3);
×
485
        TestHelpers.assertEqual(((ValueTypeNbt.ValueNbt) res2).getRawValue().get(), tag, "nbt(watertag) != null");
×
486
    }
×
487

488
    @IntegrationTest(expected = EvaluationException.class)
489
    public void testInvalidInputSizeNbtLarge() throws EvaluationException {
490
        Operators.OBJECT_FLUIDSTACK_DATA.evaluate(new IVariable[]{eBucketLava, eBucketLava});
×
491
    }
×
492

493
    @IntegrationTest(expected = EvaluationException.class)
494
    public void testInvalidInputSizeNbtSmall() throws EvaluationException {
495
        Operators.OBJECT_FLUIDSTACK_DATA.evaluate(new IVariable[]{});
×
496
    }
×
497

498
    @IntegrationTest(expected = EvaluationException.class)
499
    public void testInvalidInputTypeNbt() throws EvaluationException {
500
        Operators.OBJECT_FLUIDSTACK_DATA.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
501
    }
×
502

503
    /**
504
     * ----------------------------------- WITH_AMOUNT -----------------------------------
505
     */
506

507
    @IntegrationTest
508
    public void testWithAmount() throws EvaluationException {
509
        IValue res1 = Operators.OBJECT_FLUIDSTACK_WITH_AMOUNT.evaluate(new IVariable[]{eBucketLava, i99});
×
510
        Asserts.check(res1 instanceof ValueObjectTypeFluidStack.ValueFluidStack, "result is an integer");
×
511
        TestHelpers.assertEqual(((ValueObjectTypeFluidStack.ValueFluidStack) res1).getRawValue().getFluid(), eBucketLava.getValue().getRawValue().getFluid(), "withamount(lava, 99) = lava@99");
×
512
        TestHelpers.assertEqual(((ValueObjectTypeFluidStack.ValueFluidStack) res1).getRawValue().getAmount(), 99, "withamount(lava, 99) = lava@99");
×
513

514
        // Check if original amount is not changed
515
        TestHelpers.assertEqual(eBucketLava.getValue().getRawValue().getAmount(), IModHelpersNeoForge.get().getFluidHelpers().getBucketVolume(), "original value is not changed");
×
516
    }
×
517

518
    @IntegrationTest(expected = EvaluationException.class)
519
    public void testInvalidInputSizeWithAmountLarge() throws EvaluationException {
520
        Operators.OBJECT_FLUIDSTACK_WITH_AMOUNT.evaluate(new IVariable[]{eBucketLava, i99, i99});
×
521
    }
×
522

523
    @IntegrationTest(expected = EvaluationException.class)
524
    public void testInvalidInputSizeWithAmountSmall() throws EvaluationException {
525
        Operators.OBJECT_FLUIDSTACK_WITH_AMOUNT.evaluate(new IVariable[]{eBucketLava});
×
526
    }
×
527

528
    @IntegrationTest(expected = EvaluationException.class)
529
    public void testInvalidInputTypeWithAmount() throws EvaluationException {
530
        Operators.OBJECT_FLUIDSTACK_WITH_AMOUNT.evaluate(new IVariable[]{DUMMY_VARIABLE, DUMMY_VARIABLE});
×
531
    }
×
532

533
    /**
534
     * ----------------------------------- DATA_KEYS -----------------------------------
535
     */
536

537
    @IntegrationTest
538
    public void testFluidStackDataKeys() throws EvaluationException {
539
        IValue res1 = Operators.OBJECT_FLUIDSTACK_DATA_KEYS.evaluate(new IVariable[]{eWater100});
×
540
        Asserts.check(res1 instanceof ValueTypeList.ValueList<?,?>, "result is a list");
×
541
        TestHelpers.assertEqual(((ValueTypeList.ValueList<?,?>) res1).getRawValue().getLength(), 0, "datakeys(water) = []");
×
542

543
        IValue res2 = Operators.OBJECT_FLUIDSTACK_DATA_KEYS.evaluate(new IVariable[]{eWater100Tag});
×
544
        TestHelpers.assertEqual(((ValueTypeList.ValueList<?,?>) res2).getRawValue().getLength(), 1, "datakeys(waterTag).length = 1");
×
545
        TestHelpers.assertEqual(((ValueTypeString.ValueString) (((ValueTypeList.ValueList) res2).getRawValue().get(0))).getRawValue(), "minecraft:damage", "datakeys(waterTag)[0] == ...");
×
546
    }
×
547

548
    @IntegrationTest(expected = EvaluationException.class)
549
    public void testInvalidInputDataKeysDataKeysLarge() throws EvaluationException {
550
        Operators.OBJECT_FLUIDSTACK_DATA_KEYS.evaluate(new IVariable[]{eWater100Tag, eWater100Tag});
×
551
    }
×
552

553
    @IntegrationTest(expected = EvaluationException.class)
554
    public void testInvalidInputDataKeysDataKeysSmall() throws EvaluationException {
555
        Operators.OBJECT_FLUIDSTACK_DATA_KEYS.evaluate(new IVariable[]{});
×
556
    }
×
557

558
    @IntegrationTest(expected = EvaluationException.class)
559
    public void testInvalidInputTypeDataKeys() throws EvaluationException {
560
        Operators.OBJECT_FLUIDSTACK_DATA_KEYS.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
561
    }
×
562

563
    /**
564
     * ----------------------------------- DATA_VALUE -----------------------------------
565
     */
566

567
    @IntegrationTest
568
    public void testFluidStackDataValue() throws EvaluationException {
569
        IValue res1 = Operators.OBJECT_FLUIDSTACK_DATA_VALUE.evaluate(new IVariable[]{eWater100, sDamage});
×
570
        Asserts.check(res1 instanceof ValueTypeNbt.ValueNbt, "result is an empty tag");
×
571
        TestHelpers.assertEqual(((ValueTypeNbt.ValueNbt) res1).getRawValue().isEmpty(), true, "datavalue(water, damage) = empty");
×
572

573
        IValue res2 = Operators.OBJECT_FLUIDSTACK_DATA_VALUE.evaluate(new IVariable[]{eWater100Tag, sDamage});
×
574
        TestHelpers.assertEqual(((ValueTypeNbt.ValueNbt) res2).getRawValue().get(), IntTag.valueOf(3), "datavalue(waterTag, damage).length = 3");
×
575
    }
×
576

577
    @IntegrationTest(expected = EvaluationException.class)
578
    public void testInvalidInputDataValueDataValueLarge() throws EvaluationException {
579
        Operators.OBJECT_FLUIDSTACK_DATA_VALUE.evaluate(new IVariable[]{eWater100Tag, sDamage, eWater100Tag});
×
580
    }
×
581

582
    @IntegrationTest(expected = EvaluationException.class)
583
    public void testInvalidInputDataValueDataValueSmall() throws EvaluationException {
584
        Operators.OBJECT_FLUIDSTACK_DATA_VALUE.evaluate(new IVariable[]{eWater100Tag});
×
585
    }
×
586

587
    @IntegrationTest(expected = EvaluationException.class)
588
    public void testInvalidInputTypeDataValue() throws EvaluationException {
589
        Operators.OBJECT_FLUIDSTACK_DATA_VALUE.evaluate(new IVariable[]{DUMMY_VARIABLE, DUMMY_VARIABLE});
×
590
    }
×
591

592
    /**
593
     * ----------------------------------- WITH_DATA -----------------------------------
594
     */
595

596
    @IntegrationTest
597
    public void testFluidStackWithData() throws EvaluationException {
598
        IValue res1 = Operators.OBJECT_FLUIDSTACK_WITH_DATA.evaluate(new IVariable[]{eWater100, sDamage, t4});
×
599
        Asserts.check(res1 instanceof ValueObjectTypeFluidStack.ValueFluidStack, "result is an fluid");
×
600
        FluidStack outFluid1 = ((ValueObjectTypeFluidStack.ValueFluidStack) res1).getRawValue();
×
601
        TestHelpers.assertEqual(outFluid1.getFluid(), eWater100.getValue().getRawValue().getFluid(), "withdata(water, damage, 4) = water");
×
602
        TestHelpers.assertNonEqual(outFluid1.getComponents(), eWater100.getValue().getRawValue().getComponents(), "withdata(water, damage, 4) !=components water");
×
603
        TestHelpers.assertEqual(outFluid1.get(DataComponents.DAMAGE), 4, "withdata(water, damage, 4).damage = 4");
×
604

605
        IValue res2 = Operators.OBJECT_FLUIDSTACK_WITH_DATA.evaluate(new IVariable[]{eWater100Tag, sDamage, t4});
×
606
        FluidStack outFluid2 = ((ValueObjectTypeFluidStack.ValueFluidStack) res2).getRawValue();
×
607
        TestHelpers.assertEqual(outFluid2.getFluid(), eWater100.getValue().getRawValue().getFluid(), "withdata(waterTag, damage, 4) = water");
×
608
        TestHelpers.assertNonEqual(outFluid2.getComponents(), eWater100.getValue().getRawValue().getComponents(), "withdata(waterTag, damage, 4) !=components water");
×
609
        TestHelpers.assertEqual(outFluid2.get(DataComponents.DAMAGE), 4, "withdata(waterTag, damage, 4).damage = 4");
×
610
    }
×
611

612
    @IntegrationTest(expected = EvaluationException.class)
613
    public void testInvalidInputWithDataWithDataLarge() throws EvaluationException {
614
        Operators.OBJECT_FLUIDSTACK_WITH_DATA.evaluate(new IVariable[]{eWater100Tag, sDamage, t4, eWater100Tag});
×
615
    }
×
616

617
    @IntegrationTest(expected = EvaluationException.class)
618
    public void testInvalidInputWithDataWithDataSmall() throws EvaluationException {
619
        Operators.OBJECT_FLUIDSTACK_WITH_DATA.evaluate(new IVariable[]{eWater100Tag, sDamage});
×
620
    }
×
621

622
    @IntegrationTest(expected = EvaluationException.class)
623
    public void testInvalidInputTypeWithData() throws EvaluationException {
624
        Operators.OBJECT_FLUIDSTACK_WITH_DATA.evaluate(new IVariable[]{DUMMY_VARIABLE, DUMMY_VARIABLE, DUMMY_VARIABLE});
×
625
    }
×
626

627
    /**
628
     * ----------------------------------- TAG -----------------------------------
629
     */
630

631
    @IntegrationTest
632
    public void testFluidStackTag() throws EvaluationException {
633
        IValue res1 = Operators.OBJECT_FLUIDSTACK_TAG.evaluate(new IVariable[]{eBucketWater});
×
634
        Asserts.check(res1 instanceof ValueTypeList.ValueList, "result is a list");
×
635
        TestHelpers.assertEqual(((ValueTypeList.ValueList) res1).getRawValue().getLength(), 2, "size(tag(water)) = 2");
×
636

637
        IValue res2 = Operators.OBJECT_FLUIDSTACK_TAG.evaluate(new IVariable[]{eBucketEmpty});
×
638
        TestHelpers.assertEqual(((ValueTypeList.ValueList) res2).getRawValue().getLength(), 0, "size(tag(empty)) = 0");
×
639
    }
×
640

641
    @IntegrationTest(expected = EvaluationException.class)
642
    public void testInvalidInputSizeTagLarge() throws EvaluationException {
643
        Operators.OBJECT_FLUIDSTACK_TAG.evaluate(new IVariable[]{eBucketWater, eBucketWater});
×
644
    }
×
645

646
    @IntegrationTest(expected = EvaluationException.class)
647
    public void testInvalidInputSizeTagSmall() throws EvaluationException {
648
        Operators.OBJECT_FLUIDSTACK_TAG.evaluate(new IVariable[]{});
×
649
    }
×
650

651
    @IntegrationTest(expected = EvaluationException.class)
652
    public void testInvalidInputTypeTag() throws EvaluationException {
653
        Operators.OBJECT_FLUIDSTACK_TAG.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
654
    }
×
655

656
    /**
657
     * ----------------------------------- TAG_STACKS -----------------------------------
658
     */
659

660
    @IntegrationTest
661
    public void testFluidStackTagStacks() throws EvaluationException {
662
        IValue res1 = Operators.OBJECT_FLUIDSTACK_TAG_STACKS.evaluate(new IVariable[]{sWater});
×
663
        Asserts.check(res1 instanceof ValueTypeList.ValueList, "result is a list");
×
664
        TestHelpers.assertEqual(((ValueTypeList.ValueList) res1).getRawValue().getLength(), (int) Helpers.getFluidTagValues("minecraft:water").count(), "size(tag_stacks(water))");
×
665
    }
×
666

667
    @IntegrationTest(expected = EvaluationException.class)
668
    public void testInvalidInputSizeTagStacksLarge() throws EvaluationException {
669
        Operators.OBJECT_FLUIDSTACK_TAG_STACKS.evaluate(new IVariable[]{sWater, sWater});
×
670
    }
×
671

672
    @IntegrationTest(expected = EvaluationException.class)
673
    public void testInvalidInputSizeTagStacksSmall() throws EvaluationException {
674
        Operators.OBJECT_FLUIDSTACK_TAG_STACKS.evaluate(new IVariable[]{});
×
675
    }
×
676

677
    @IntegrationTest(expected = EvaluationException.class)
678
    public void testInvalidInputTypeTagStacks() throws EvaluationException {
679
        Operators.OBJECT_FLUIDSTACK_TAG_STACKS.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
680
    }
×
681

682
    /**
683
     * ----------------------------------- FLUIDBYNAME -----------------------------------
684
     */
685

686
    @IntegrationTest
687
    public void testFluidFluidByName() throws EvaluationException {
688
        IValue res1 = Operators.OBJECT_FLUIDSTACK_BY_NAME.evaluate(new IVariable[]{sWater});
×
689
        Asserts.check(res1 instanceof ValueObjectTypeFluidStack.ValueFluidStack, "result is a fluid");
×
690
        TestHelpers.assertEqual(((ValueObjectTypeFluidStack.ValueFluidStack) res1).getRawValue().getFluid(),
×
691
                new FluidStack(Fluids.WATER, 1000).getFluid(), "fluidbyname(minecraft:water) = water");
×
692
    }
×
693

694
    @IntegrationTest(expected = EvaluationException.class)
695
    public void testInvalidInputSizeFluidByNameLarge() throws EvaluationException {
696
        Operators.OBJECT_FLUIDSTACK_BY_NAME.evaluate(new IVariable[]{sWater, sWater});
×
697
    }
×
698

699
    @IntegrationTest(expected = EvaluationException.class)
700
    public void testInvalidInputSizeFluidByNameSmall() throws EvaluationException {
701
        Operators.OBJECT_FLUIDSTACK_BY_NAME.evaluate(new IVariable[]{});
×
702
    }
×
703

704
    @IntegrationTest(expected = EvaluationException.class)
705
    public void testInvalidInputTypeFluidByName() throws EvaluationException {
706
        Operators.OBJECT_FLUIDSTACK_BY_NAME.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
707
    }
×
708

709
}
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