• 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/TestEntityOperators.java
1
package org.cyclops.integrateddynamics.gametest.integration;
2

3
import com.mojang.authlib.GameProfile;
4
import net.minecraft.core.BlockPos;
5
import net.minecraft.core.Direction;
6
import net.minecraft.nbt.CompoundTag;
7
import net.minecraft.server.level.ClientInformation;
8
import net.minecraft.server.level.ServerPlayer;
9
import net.minecraft.world.entity.Entity;
10
import net.minecraft.world.entity.EntityType;
11
import net.minecraft.world.entity.EquipmentSlot;
12
import net.minecraft.world.entity.animal.Chicken;
13
import net.minecraft.world.entity.animal.Cow;
14
import net.minecraft.world.entity.animal.Pig;
15
import net.minecraft.world.entity.animal.sheep.Sheep;
16
import net.minecraft.world.entity.decoration.ItemFrame;
17
import net.minecraft.world.entity.item.ItemEntity;
18
import net.minecraft.world.entity.monster.Zombie;
19
import net.minecraft.world.entity.vehicle.Boat;
20
import net.minecraft.world.item.ItemStack;
21
import net.minecraft.world.item.Items;
22
import net.minecraft.world.level.Level;
23
import net.neoforged.neoforge.server.ServerLifecycleHooks;
24
import org.cyclops.cyclopscore.helper.IModHelpers;
25
import org.cyclops.integrateddynamics.api.evaluate.EvaluationException;
26
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
27
import org.cyclops.integrateddynamics.api.evaluate.variable.IVariable;
28
import org.cyclops.integrateddynamics.core.evaluate.operator.Operators;
29
import org.cyclops.integrateddynamics.core.evaluate.variable.*;
30
import org.cyclops.integrateddynamics.core.test.IntegrationBefore;
31
import org.cyclops.integrateddynamics.core.test.IntegrationTest;
32
import org.cyclops.integrateddynamics.core.test.TestHelpers;
33

34
import java.util.UUID;
35

36
/**
37
 * Test the different logical operators.
38
 * @author rubensworks
39
 */
40
public class TestEntityOperators {
×
41

42
    private static final DummyValueType DUMMY_TYPE = DummyValueType.TYPE;
×
43
    private static final DummyVariable<DummyValueType.DummyValue> DUMMY_VARIABLE =
×
44
            new DummyVariable<DummyValueType.DummyValue>(DUMMY_TYPE, DummyValueType.DummyValue.of());
×
45

46
    private DummyVariableEntity eZombie;
47
    private DummyVariableEntity eZombieBurning;
48
    private DummyVariableEntity eZombieWet;
49
    private DummyVariableEntity eZombieCrouching;
50
    private DummyVariableEntity eZombieEating;
51
    private DummyVariableEntity eChicken;
52
    private DummyVariableEntity eItem;
53
    private DummyVariableEntity eItemFrame;
54
    private DummyVariableEntity ePlayer;
55
    private DummyVariableEntity eZombieHeldItems;
56
    private DummyVariableEntity eBoat;
57
    private DummyVariableEntity eItemframe;
58
    private DummyVariableEntity eZombieAged;
59
    private DummyVariableEntity eZombieBaby;
60
    private DummyVariableEntity eCow;
61
    private DummyVariableEntity eCowAlreadyBred;
62
    private DummyVariableEntity eCowBaby;
63
    private DummyVariableEntity eCowInLove;
64
    private DummyVariableEntity ePig;
65
    private DummyVariableEntity eSheep;
66
    private DummyVariableEntity eSheepSheared;
67

68
    private DummyVariableItemStack iCarrot;
69
    private DummyVariableItemStack iWheat;
70

71
    protected ValueObjectTypeEntity.ValueEntity makeEntity(Entity entity) {
72
        return new ValueEntityMock(entity);
×
73
    }
74

75
    @IntegrationBefore
76
    public void before() {
77
        Level world = ServerLifecycleHooks.getCurrentServer().getLevel(Level.OVERWORLD);
×
78
        eZombie = new DummyVariableEntity(makeEntity(new Zombie(world) {
×
79
            @Override
80
            public boolean isInWaterOrRain() {
81
                return false;
×
82
            }
83
        }));
84
        Zombie zombieBurning = new Zombie(world);
×
85
        zombieBurning.setRemainingFireTicks(10);
×
86
        eZombieBurning = new DummyVariableEntity(makeEntity(zombieBurning));
×
87
        Zombie zombieWet = new Zombie(world) {
×
88
            @Override
89
            protected void registerGoals() {
90
                super.registerGoals();
×
91
                this.wasTouchingWater = true;
×
92
            }
×
93
        };
94
        eZombieWet = new DummyVariableEntity(makeEntity(zombieWet));
×
95
        Zombie zombieCrouching = new Zombie(world) {
×
96
            @Override
97
            public boolean isCrouching() {
98
                return true;
×
99
            }
100
        };
101
        eZombieCrouching = new DummyVariableEntity(makeEntity(zombieCrouching));
×
102
        Zombie zombieEating = new Zombie(world) {
×
103
            @Override
104
            public int getUseItemRemainingTicks() {
105
                return 1;
×
106
            }
107
        };
108
        eZombieEating = new DummyVariableEntity(makeEntity(zombieEating));
×
109
        eChicken = new DummyVariableEntity(makeEntity(new Chicken(EntityType.CHICKEN, world)));
×
110
        eItem = new DummyVariableEntity(makeEntity(new ItemEntity(world, 0, 0, 0, ItemStack.EMPTY)));
×
111
        eItemFrame = new DummyVariableEntity(makeEntity(new ItemFrame(world, new BlockPos(0, 0, 0), Direction.NORTH)));
×
112
        if (IModHelpers.get().getMinecraftHelpers().isClientSide()) {
×
113
            ePlayer = new DummyVariableEntity(makeEntity(world.players().get(0)));
×
114
        } else {
115
            ePlayer = new DummyVariableEntity(makeEntity(new ServerPlayer(
×
116
                    ServerLifecycleHooks.getCurrentServer(),
×
117
                    ServerLifecycleHooks.getCurrentServer().overworld(),
×
118
                    new GameProfile(UUID.randomUUID(), "test"),
×
119
                    ClientInformation.createDefault()
×
120
            )));
121
        }
122
        Zombie zombieHeldItems = new Zombie(world);
×
123
        zombieHeldItems.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(Items.APPLE));
×
124
        zombieHeldItems.setItemSlot(EquipmentSlot.OFFHAND, new ItemStack(Items.POTATO));
×
125
        eZombieHeldItems = new DummyVariableEntity(makeEntity(zombieHeldItems));
×
126
        Boat boat = new Boat(EntityType.ACACIA_BOAT, world, () -> ItemStack.EMPTY.getItem());
×
127
        eZombie.getValue().getRawValue().get().startRiding(boat, true, true);
×
128
        eBoat = new DummyVariableEntity(makeEntity(boat));
×
129
        ItemFrame itemframe = new ItemFrame(world, new BlockPos(0, 0, 0), Direction.NORTH);
×
130
        itemframe.setItem(new ItemStack(Items.POTATO));
×
131
        itemframe.setRotation(3);
×
132
        eItemframe = new DummyVariableEntity(makeEntity(itemframe));
×
133
        Zombie zombieAged = new Zombie(world) {
×
134
            @Override
135
            public int getNoActionTime() {
136
                return 3;
×
137
            }
138
        };
139
        eZombieAged = new DummyVariableEntity(makeEntity(zombieAged));
×
140
        Zombie zombieBaby = new Zombie(world);
×
141
        zombieBaby.setBaby(true);
×
142
        eZombieBaby = new DummyVariableEntity(makeEntity(zombieBaby));
×
143
        eCow = new DummyVariableEntity(makeEntity(new Cow(EntityType.COW, world)));
×
144
        eCowAlreadyBred = new DummyVariableEntity(makeEntity(new Cow(EntityType.COW, world) {
×
145
            @Override
146
            public int getAge() {
147
                return 10;
×
148
            }
149
        }));
150
        eCowBaby = new DummyVariableEntity(makeEntity(new Cow(EntityType.COW, world) {
×
151
            @Override
152
            public int getAge() {
153
                return -10;
×
154
            }
155
        }));
156
        eCowInLove = new DummyVariableEntity(makeEntity(new Cow(EntityType.COW, world) {
×
157
            @Override
158
            public boolean isInLove() {
159
                return true;
×
160
            }
161
        }));
162
        ePig = new DummyVariableEntity(makeEntity(new Pig(EntityType.PIG, world)));
×
163
        eSheep = new DummyVariableEntity(makeEntity(new Sheep(EntityType.SHEEP, world)));
×
164
        Sheep sheepSheared = new Sheep(EntityType.SHEEP, world);
×
165
        sheepSheared.setSheared(true);
×
166
        eSheepSheared = new DummyVariableEntity(makeEntity(sheepSheared));
×
167

168
        iCarrot = new DummyVariableItemStack(ValueObjectTypeItemStack.ValueItemStack.of(new ItemStack(Items.CARROT)));
×
169
        iWheat = new DummyVariableItemStack(ValueObjectTypeItemStack.ValueItemStack.of(new ItemStack(Items.WHEAT)));
×
170
    }
×
171

172
    /**
173
     * ----------------------------------- ISMOB -----------------------------------
174
     */
175

176
    @IntegrationTest
177
    public void testBlockIsMob() throws EvaluationException {
178
        IValue res1 = Operators.OBJECT_ENTITY_ISMOB.evaluate(new IVariable[]{eZombie});
×
179
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
180
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), true, "isismob(zombie) = true");
×
181

182
        IValue res2 = Operators.OBJECT_ENTITY_ISMOB.evaluate(new IVariable[]{eChicken});
×
183
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), false, "isismob(chicken) = false");
×
184

185
        IValue res3 = Operators.OBJECT_ENTITY_ISMOB.evaluate(new IVariable[]{eItem});
×
186
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), false, "isismob(item) = false");
×
187

188
        IValue res4 = Operators.OBJECT_ENTITY_ISMOB.evaluate(new IVariable[]{eItemFrame});
×
189
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res4).getRawValue(), false, "isismob(itemframe) = false");
×
190

191
        IValue res5 = Operators.OBJECT_ENTITY_ISMOB.evaluate(new IVariable[]{ePlayer});
×
192
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res5).getRawValue(), false, "isismob(player) = false");
×
193
    }
×
194

195
    @IntegrationTest(expected = EvaluationException.class)
196
    public void testInvalidInputSizeIsMobLarge() throws EvaluationException {
197
        Operators.OBJECT_ENTITY_ISMOB.evaluate(new IVariable[]{eZombie, eZombie});
×
198
    }
×
199

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

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

210
    /**
211
     * ----------------------------------- ISANIMAL -----------------------------------
212
     */
213

214
    @IntegrationTest
215
    public void testBlockIsAnimal() throws EvaluationException {
216
        IValue res1 = Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{eZombie});
×
217
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
218
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "isisanimal(zombie) = false");
×
219

220
        IValue res2 = Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{eChicken});
×
221
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "isisanimal(chicken) = true");
×
222

223
        IValue res3 = Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{eItem});
×
224
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), false, "isisanimal(item) = false");
×
225

226
        IValue res4 = Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{eItemFrame});
×
227
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res4).getRawValue(), false, "isisanimal(itemframe) = false");
×
228

229
        IValue res5 = Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{ePlayer});
×
230
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res5).getRawValue(), false, "isismob(player) = false");
×
231
    }
×
232

233
    @IntegrationTest(expected = EvaluationException.class)
234
    public void testInvalidInputSizeIsAnimalLarge() throws EvaluationException {
235
        Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{eZombie, eZombie});
×
236
    }
×
237

238
    @IntegrationTest(expected = EvaluationException.class)
239
    public void testInvalidInputSizeIsAnimalSmall() throws EvaluationException {
240
        Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{});
×
241
    }
×
242

243
    @IntegrationTest(expected = EvaluationException.class)
244
    public void testInvalidInputTypeIsAnimal() throws EvaluationException {
245
        Operators.OBJECT_ENTITY_ISANIMAL.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
246
    }
×
247

248
    /**
249
     * ----------------------------------- ISITEM -----------------------------------
250
     */
251

252
    @IntegrationTest
253
    public void testBlockIsItem() throws EvaluationException {
254
        IValue res1 = Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{eZombie});
×
255
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
256
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "isisitem(zombie) = false");
×
257

258
        IValue res2 = Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{eChicken});
×
259
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), false, "isisitem(chicken) = false");
×
260

261
        IValue res3 = Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{eItem});
×
262
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), true, "isisitem(item) = true");
×
263

264
        IValue res4 = Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{eItemFrame});
×
265
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res4).getRawValue(), false, "isisitem(itemframe) = false");
×
266

267
        IValue res5 = Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{ePlayer});
×
268
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res5).getRawValue(), false, "isismob(player) = false");
×
269
    }
×
270

271
    @IntegrationTest(expected = EvaluationException.class)
272
    public void testInvalidInputSizeIsItemLarge() throws EvaluationException {
273
        Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{eZombie, eZombie});
×
274
    }
×
275

276
    @IntegrationTest(expected = EvaluationException.class)
277
    public void testInvalidInputSizeIsItemSmall() throws EvaluationException {
278
        Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{});
×
279
    }
×
280

281
    @IntegrationTest(expected = EvaluationException.class)
282
    public void testInvalidInputTypeIsItem() throws EvaluationException {
283
        Operators.OBJECT_ENTITY_ISITEM.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
284
    }
×
285

286
    /**
287
     * ----------------------------------- ISPLAYER -----------------------------------
288
     */
289

290
    @IntegrationTest
291
    public void testBlockIsPlayer() throws EvaluationException {
292
        IValue res1 = Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{eZombie});
×
293
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
294
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "isisplayer(zombie) = false");
×
295

296
        IValue res2 = Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{eChicken});
×
297
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), false, "isisplayer(chicken) = false");
×
298

299
        IValue res3 = Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{eItem});
×
300
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), false, "isisplayer(item) = false");
×
301

302
        IValue res4 = Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{eItemFrame});
×
303
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res4).getRawValue(), false, "isisplayer(itemframe) = false");
×
304

305
        IValue res5 = Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{ePlayer});
×
306
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res5).getRawValue(), true, "isisplayer(player) = true");
×
307
    }
×
308

309
    @IntegrationTest(expected = EvaluationException.class)
310
    public void testInvalidInputSizeIsPlayerLarge() throws EvaluationException {
311
        Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{eZombie, eZombie});
×
312
    }
×
313

314
    @IntegrationTest(expected = EvaluationException.class)
315
    public void testInvalidInputSizeIsPlayerSmall() throws EvaluationException {
316
        Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{});
×
317
    }
×
318

319
    @IntegrationTest(expected = EvaluationException.class)
320
    public void testInvalidInputTypeIsPlayer() throws EvaluationException {
321
        Operators.OBJECT_ENTITY_ISPLAYER.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
322
    }
×
323

324
    /**
325
     * ----------------------------------- ITEMSTACK -----------------------------------
326
     */
327

328
    @IntegrationTest
329
    public void testBlockItemStack() throws EvaluationException {
330
        IValue res1 = Operators.OBJECT_ENTITY_ITEMSTACK.evaluate(new IVariable[]{eZombie});
×
331
        Asserts.check(res1 instanceof ValueObjectTypeItemStack.ValueItemStack, "result is an itemstack");
×
332
        TestHelpers.assertEqual(!((ValueObjectTypeItemStack.ValueItemStack) res1).getRawValue().isEmpty(), false, "itemstack(zombie) = null");
×
333

334
        IValue res2 = Operators.OBJECT_ENTITY_ITEMSTACK.evaluate(new IVariable[]{eItem});
×
335
        TestHelpers.assertEqual(((ValueObjectTypeItemStack.ValueItemStack) res2).getRawValue().isEmpty(), true, "itemstack(null) = null");
×
336
    }
×
337

338
    @IntegrationTest(expected = EvaluationException.class)
339
    public void testInvalidInputSizeItemStackLarge() throws EvaluationException {
340
        Operators.OBJECT_ENTITY_ITEMSTACK.evaluate(new IVariable[]{eZombie, eZombie});
×
341
    }
×
342

343
    @IntegrationTest(expected = EvaluationException.class)
344
    public void testInvalidInputSizeItemStackSmall() throws EvaluationException {
345
        Operators.OBJECT_ENTITY_ITEMSTACK.evaluate(new IVariable[]{});
×
346
    }
×
347

348
    @IntegrationTest(expected = EvaluationException.class)
349
    public void testInvalidInputTypeItemStack() throws EvaluationException {
350
        Operators.OBJECT_ENTITY_ITEMSTACK.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
351
    }
×
352

353
    /**
354
     * ----------------------------------- HEALTH -----------------------------------
355
     */
356

357
    @IntegrationTest
358
    public void testBlockHealth() throws EvaluationException {
359
        IValue res1 = Operators.OBJECT_ENTITY_HEALTH.evaluate(new IVariable[]{eZombie});
×
360
        Asserts.check(res1 instanceof ValueTypeDouble.ValueDouble, "result is a double");
×
361
        TestHelpers.assertEqual(((ValueTypeDouble.ValueDouble) res1).getRawValue(), 20.0D, "health(zombie) = 10");
×
362

363
        IValue res2 = Operators.OBJECT_ENTITY_HEALTH.evaluate(new IVariable[]{eItem});
×
364
        TestHelpers.assertEqual(((ValueTypeDouble.ValueDouble) res2).getRawValue(), 0D, "health(item) = 0");
×
365
    }
×
366

367
    @IntegrationTest(expected = EvaluationException.class)
368
    public void testInvalidInputSizeHealthLarge() throws EvaluationException {
369
        Operators.OBJECT_ENTITY_HEALTH.evaluate(new IVariable[]{eZombie, eZombie});
×
370
    }
×
371

372
    @IntegrationTest(expected = EvaluationException.class)
373
    public void testInvalidInputSizeHealthSmall() throws EvaluationException {
374
        Operators.OBJECT_ENTITY_HEALTH.evaluate(new IVariable[]{});
×
375
    }
×
376

377
    @IntegrationTest(expected = EvaluationException.class)
378
    public void testInvalidInputTypeHealth() throws EvaluationException {
379
        Operators.OBJECT_ENTITY_HEALTH.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
380
    }
×
381

382
    /**
383
     * ----------------------------------- WIDTH -----------------------------------
384
     */
385

386
    @IntegrationTest
387
    public void testBlockWidth() throws EvaluationException {
388
        IValue res1 = Operators.OBJECT_ENTITY_WIDTH.evaluate(new IVariable[]{eZombie});
×
389
        Asserts.check(res1 instanceof ValueTypeDouble.ValueDouble, "result is a double");
×
390
        TestHelpers.assertEqual(((ValueTypeDouble.ValueDouble) res1).getRawValue(), 0.6D, "width(zombie) = 0.6");
×
391

392
        IValue res2 = Operators.OBJECT_ENTITY_WIDTH.evaluate(new IVariable[]{eItem});
×
393
        TestHelpers.assertEqual(((ValueTypeDouble.ValueDouble) res2).getRawValue(), 0.25D, "width(item) = 0.25");
×
394
    }
×
395

396
    @IntegrationTest(expected = EvaluationException.class)
397
    public void testInvalidInputSizeWidthLarge() throws EvaluationException {
398
        Operators.OBJECT_ENTITY_WIDTH.evaluate(new IVariable[]{eZombie, eZombie});
×
399
    }
×
400

401
    @IntegrationTest(expected = EvaluationException.class)
402
    public void testInvalidInputSizeWidthSmall() throws EvaluationException {
403
        Operators.OBJECT_ENTITY_WIDTH.evaluate(new IVariable[]{});
×
404
    }
×
405

406
    @IntegrationTest(expected = EvaluationException.class)
407
    public void testInvalidInputTypeWidth() throws EvaluationException {
408
        Operators.OBJECT_ENTITY_WIDTH.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
409
    }
×
410

411
    /**
412
     * ----------------------------------- HEIGHT -----------------------------------
413
     */
414

415
    @IntegrationTest
416
    public void testBlockHeight() throws EvaluationException {
417
        IValue res1 = Operators.OBJECT_ENTITY_HEIGHT.evaluate(new IVariable[]{eZombie});
×
418
        Asserts.check(res1 instanceof ValueTypeDouble.ValueDouble, "result is a double");
×
419
        TestHelpers.assertEqual(((ValueTypeDouble.ValueDouble) res1).getRawValue(), 2D, "height(zombie) = 2");
×
420

421
        IValue res2 = Operators.OBJECT_ENTITY_HEIGHT.evaluate(new IVariable[]{eItem});
×
422
        TestHelpers.assertEqual(((ValueTypeDouble.ValueDouble) res2).getRawValue(), 0.25D, "height(item) = 0.25");
×
423
    }
×
424

425
    @IntegrationTest(expected = EvaluationException.class)
426
    public void testInvalidInputSizeHeightLarge() throws EvaluationException {
427
        Operators.OBJECT_ENTITY_HEIGHT.evaluate(new IVariable[]{eZombie, eZombie});
×
428
    }
×
429

430
    @IntegrationTest(expected = EvaluationException.class)
431
    public void testInvalidInputSizeHeightSmall() throws EvaluationException {
432
        Operators.OBJECT_ENTITY_HEIGHT.evaluate(new IVariable[]{});
×
433
    }
×
434

435
    @IntegrationTest(expected = EvaluationException.class)
436
    public void testInvalidInputTypeHeight() throws EvaluationException {
437
        Operators.OBJECT_ENTITY_HEIGHT.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
438
    }
×
439

440
    /**
441
     * ----------------------------------- ISBURNING -----------------------------------
442
     */
443

444
    @IntegrationTest
445
    public void testBlockIsBurning() throws EvaluationException {
446
        IValue res1 = Operators.OBJECT_ENTITY_ISBURNING.evaluate(new IVariable[]{eZombie});
×
447
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
448
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "isburning(zombie) = false");
×
449

450
        IValue res2 = Operators.OBJECT_ENTITY_ISBURNING.evaluate(new IVariable[]{eZombieBurning});
×
451
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "isburning(zombie:burning) = true");
×
452
    }
×
453

454
    @IntegrationTest(expected = EvaluationException.class)
455
    public void testInvalidInputSizeIsBurningLarge() throws EvaluationException {
456
        Operators.OBJECT_ENTITY_ISBURNING.evaluate(new IVariable[]{eZombie, eZombie});
×
457
    }
×
458

459
    @IntegrationTest(expected = EvaluationException.class)
460
    public void testInvalidInputSizeIsBurningSmall() throws EvaluationException {
461
        Operators.OBJECT_ENTITY_ISBURNING.evaluate(new IVariable[]{});
×
462
    }
×
463

464
    @IntegrationTest(expected = EvaluationException.class)
465
    public void testInvalidInputTypeIsBurning() throws EvaluationException {
466
        Operators.OBJECT_ENTITY_ISBURNING.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
467
    }
×
468

469
    /**
470
     * ----------------------------------- ISWET -----------------------------------
471
     */
472

473
    @IntegrationTest
474
    public void testBlockIsWet() throws EvaluationException {
475
        IValue res1 = Operators.OBJECT_ENTITY_ISWET.evaluate(new IVariable[]{eZombie});
×
476
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
477
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "iswet(zombie) = false");
×
478

479
        IValue res2 = Operators.OBJECT_ENTITY_ISWET.evaluate(new IVariable[]{eZombieWet});
×
480
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "iswet(zombie:wet) = true");
×
481
    }
×
482

483
    @IntegrationTest(expected = EvaluationException.class)
484
    public void testInvalidInputSizeIsWetLarge() throws EvaluationException {
485
        Operators.OBJECT_ENTITY_ISWET.evaluate(new IVariable[]{eZombie, eZombie});
×
486
    }
×
487

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

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

498
    /**
499
     * ----------------------------------- ISCROUCHING -----------------------------------
500
     */
501

502
    @IntegrationTest
503
    public void testBlockIsCrouching() throws EvaluationException {
504
        IValue res1 = Operators.OBJECT_ENTITY_ISCROUCHING.evaluate(new IVariable[]{eZombie});
×
505
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
506
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "issneaking(zombie) = false");
×
507

508
        IValue res2 = Operators.OBJECT_ENTITY_ISCROUCHING.evaluate(new IVariable[]{eZombieCrouching});
×
509
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "issneaking(zombie:sneaking) = true");
×
510
    }
×
511

512
    @IntegrationTest(expected = EvaluationException.class)
513
    public void testInvalidInputSizeIsCrouchingLarge() throws EvaluationException {
514
        Operators.OBJECT_ENTITY_ISCROUCHING.evaluate(new IVariable[]{eZombie, eZombie});
×
515
    }
×
516

517
    @IntegrationTest(expected = EvaluationException.class)
518
    public void testInvalidInputSizeIsCrouchingSmall() throws EvaluationException {
519
        Operators.OBJECT_ENTITY_ISCROUCHING.evaluate(new IVariable[]{});
×
520
    }
×
521

522
    @IntegrationTest(expected = EvaluationException.class)
523
    public void testInvalidInputTypeIsCrouching() throws EvaluationException {
524
        Operators.OBJECT_ENTITY_ISCROUCHING.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
525
    }
×
526

527
    /**
528
     * ----------------------------------- ISEATING -----------------------------------
529
     */
530

531
    @IntegrationTest
532
    public void testBlockIsEating() throws EvaluationException {
533
        IValue res1 = Operators.OBJECT_ENTITY_ISEATING.evaluate(new IVariable[]{eZombie});
×
534
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
535
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "iseating(zombie) = false");
×
536

537
        IValue res2 = Operators.OBJECT_ENTITY_ISEATING.evaluate(new IVariable[]{eZombieEating});
×
538
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "iseating(zombie:eating) = true");
×
539
    }
×
540

541
    @IntegrationTest(expected = EvaluationException.class)
542
    public void testInvalidInputSizeIsEatingLarge() throws EvaluationException {
543
        Operators.OBJECT_ENTITY_ISEATING.evaluate(new IVariable[]{eZombie, eZombie});
×
544
    }
×
545

546
    @IntegrationTest(expected = EvaluationException.class)
547
    public void testInvalidInputSizeIsEatingSmall() throws EvaluationException {
548
        Operators.OBJECT_ENTITY_ISEATING.evaluate(new IVariable[]{});
×
549
    }
×
550

551
    @IntegrationTest(expected = EvaluationException.class)
552
    public void testInvalidInputTypeIsEating() throws EvaluationException {
553
        Operators.OBJECT_ENTITY_ISEATING.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
554
    }
×
555

556
    /**
557
     * ----------------------------------- MODNAME -----------------------------------
558
     */
559

560
    @IntegrationTest
561
    public void testEntityModName() throws EvaluationException {
562
        IValue res1 = Operators.OBJECT_ENTITY_MODNAME.evaluate(new IVariable[]{eZombie});
×
563
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
564
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), "Minecraft", "modname(zombie) = Minecraft");
×
565
    }
×
566

567
    @IntegrationTest(expected = EvaluationException.class)
568
    public void testInvalidInputSizeModNameLarge() throws EvaluationException {
569
        Operators.OBJECT_ENTITY_MODNAME.evaluate(new IVariable[]{eZombie, eZombie});
×
570
    }
×
571

572
    @IntegrationTest(expected = EvaluationException.class)
573
    public void testInvalidInputSizeModNameSmall() throws EvaluationException {
574
        Operators.OBJECT_ENTITY_MODNAME.evaluate(new IVariable[]{});
×
575
    }
×
576

577
    @IntegrationTest(expected = EvaluationException.class)
578
    public void testInvalidInputTypeModName() throws EvaluationException {
579
        Operators.OBJECT_ENTITY_MODNAME.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
580
    }
×
581

582
    /**
583
     * ----------------------------------- HELDITEM_MAIN -----------------------------------
584
     */
585

586
    @IntegrationTest
587
    public void testEntityHeldItemMain() throws EvaluationException {
588
        IValue res1 = Operators.OBJECT_ENTITY_HELDITEM_MAIN.evaluate(new IVariable[]{eZombieHeldItems});
×
589
        Asserts.check(res1 instanceof ValueObjectTypeItemStack.ValueItemStack, "result is an item");
×
590
        TestHelpers.assertEqual(((ValueObjectTypeItemStack.ValueItemStack) res1).getRawValue().getItem(), Items.APPLE, "helditemmain(zombie) = apple");
×
591
    }
×
592

593
    @IntegrationTest(expected = EvaluationException.class)
594
    public void testInvalidInputSizeHeldItemMainLarge() throws EvaluationException {
595
        Operators.OBJECT_ENTITY_HELDITEM_MAIN.evaluate(new IVariable[]{eZombieHeldItems, eZombieHeldItems});
×
596
    }
×
597

598
    @IntegrationTest(expected = EvaluationException.class)
599
    public void testInvalidInputSizeHeldItemMainSmall() throws EvaluationException {
600
        Operators.OBJECT_ENTITY_HELDITEM_MAIN.evaluate(new IVariable[]{});
×
601
    }
×
602

603
    @IntegrationTest(expected = EvaluationException.class)
604
    public void testInvalidInputTypeHeldItemMain() throws EvaluationException {
605
        Operators.OBJECT_ENTITY_HELDITEM_MAIN.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
606
    }
×
607

608
    /**
609
     * ----------------------------------- HELDITEM_OFF -----------------------------------
610
     */
611

612
    @IntegrationTest
613
    public void testEntityHeldItemOff() throws EvaluationException {
614
        IValue res1 = Operators.OBJECT_ENTITY_HELDITEM_OFF.evaluate(new IVariable[]{eZombieHeldItems});
×
615
        Asserts.check(res1 instanceof ValueObjectTypeItemStack.ValueItemStack, "result is an item");
×
616
        TestHelpers.assertEqual(((ValueObjectTypeItemStack.ValueItemStack) res1).getRawValue().getItem(), Items.POTATO, "helditemoff(zombie) = potato");
×
617
    }
×
618

619
    @IntegrationTest(expected = EvaluationException.class)
620
    public void testInvalidInputSizeHeldItemOffLarge() throws EvaluationException {
621
        Operators.OBJECT_ENTITY_HELDITEM_OFF.evaluate(new IVariable[]{eZombieHeldItems, eZombieHeldItems});
×
622
    }
×
623

624
    @IntegrationTest(expected = EvaluationException.class)
625
    public void testInvalidInputSizeHeldItemOffSmall() throws EvaluationException {
626
        Operators.OBJECT_ENTITY_HELDITEM_OFF.evaluate(new IVariable[]{});
×
627
    }
×
628

629
    @IntegrationTest(expected = EvaluationException.class)
630
    public void testInvalidInputTypeHeldItemOff() throws EvaluationException {
631
        Operators.OBJECT_ENTITY_HELDITEM_OFF.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
632
    }
×
633

634
    /**
635
     * ----------------------------------- MOUNTED -----------------------------------
636
     */
637

638
    @IntegrationTest
639
    public void testEntityMounted() throws EvaluationException {
640
        IValue res1 = Operators.OBJECT_ENTITY_MOUNTED.evaluate(new IVariable[]{eBoat});
×
641
        Asserts.check(res1 instanceof ValueTypeList.ValueList, "result is a list");
×
642
        TestHelpers.assertEqual(((ValueTypeList.ValueList) res1).getRawValue().getLength(), 1, "#mounted(boat) = 1");
×
643
        // We can not use the mocked entity value in a clean way here, checking the list size should be enough.
644
        //TestHelpers.assertEqual(((ValueObjectTypeEntity.ValueEntity) ((ValueTypeList.ValueList) res1).getRawValue().get(0)).getRawValue().get(), eZombie.getValue().getRawValue().get(), "mounted(boat)(0) = zombie");
645
    }
×
646

647
    @IntegrationTest(expected = EvaluationException.class)
648
    public void testInvalidInputSizeMountedLarge() throws EvaluationException {
649
        Operators.OBJECT_ENTITY_MOUNTED.evaluate(new IVariable[]{eBoat, eBoat});
×
650
    }
×
651

652
    @IntegrationTest(expected = EvaluationException.class)
653
    public void testInvalidInputSizeMountedSmall() throws EvaluationException {
654
        Operators.OBJECT_ENTITY_MOUNTED.evaluate(new IVariable[]{});
×
655
    }
×
656

657
    @IntegrationTest(expected = EvaluationException.class)
658
    public void testInvalidInputTypeMounted() throws EvaluationException {
659
        Operators.OBJECT_ENTITY_MOUNTED.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
660
    }
×
661

662
    /**
663
     * ----------------------------------- ITEMFRAME_CONTENTS -----------------------------------
664
     */
665

666
    @IntegrationTest
667
    public void testEntityItemframeContents() throws EvaluationException {
668
        IValue res1 = Operators.OBJECT_ITEMFRAME_CONTENTS.evaluate(new IVariable[]{eItemframe});
×
669
        Asserts.check(res1 instanceof ValueObjectTypeItemStack.ValueItemStack, "result is an item");
×
670
        TestHelpers.assertEqual(((ValueObjectTypeItemStack.ValueItemStack) res1).getRawValue().getItem(), Items.POTATO, "itemframecontents(itemframe) = potato");
×
671
    }
×
672

673
    @IntegrationTest(expected = EvaluationException.class)
674
    public void testInvalidInputSizeItemframeContentsLarge() throws EvaluationException {
675
        Operators.OBJECT_ITEMFRAME_CONTENTS.evaluate(new IVariable[]{eItemframe, eItemframe});
×
676
    }
×
677

678
    @IntegrationTest(expected = EvaluationException.class)
679
    public void testInvalidInputSizeItemframeContentsSmall() throws EvaluationException {
680
        Operators.OBJECT_ITEMFRAME_CONTENTS.evaluate(new IVariable[]{});
×
681
    }
×
682

683
    @IntegrationTest(expected = EvaluationException.class)
684
    public void testInvalidInputTypeItemframeContents() throws EvaluationException {
685
        Operators.OBJECT_ITEMFRAME_CONTENTS.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
686
    }
×
687

688
    /**
689
     * ----------------------------------- ITEMFRAME_ROTATION -----------------------------------
690
     */
691

692
    @IntegrationTest
693
    public void testEntityItemframeRotation() throws EvaluationException {
694
        IValue res1 = Operators.OBJECT_ITEMFRAME_ROTATION.evaluate(new IVariable[]{eItemframe});
×
695
        Asserts.check(res1 instanceof ValueTypeInteger.ValueInteger, "result is an integer");
×
696
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res1).getRawValue(), 3, "itemframerotation(itemframe) = 3");
×
697
    }
×
698

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

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

709
    @IntegrationTest(expected = EvaluationException.class)
710
    public void testInvalidInputTypeItemframeRotation() throws EvaluationException {
711
        Operators.OBJECT_ITEMFRAME_ROTATION.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
712
    }
×
713

714
    /**
715
     * ----------------------------------- HURTSOUND -----------------------------------
716
     */
717

718
    @IntegrationTest
719
    public void testEntityHurtSound() throws EvaluationException {
720
        IValue res1 = Operators.OBJECT_ENTITY_HURTSOUND.evaluate(new IVariable[]{eZombie});
×
721
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
722
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), "minecraft:entity.zombie.hurt", "hurtsound(zomie) = minecraft:entity.zombie.hurt");
×
723
    }
×
724

725
    @IntegrationTest(expected = EvaluationException.class)
726
    public void testInvalidInputSizeHurtSoundLarge() throws EvaluationException {
727
        Operators.OBJECT_ENTITY_HURTSOUND.evaluate(new IVariable[]{eZombie, eZombie});
×
728
    }
×
729

730
    @IntegrationTest(expected = EvaluationException.class)
731
    public void testInvalidInputSizeHurtSoundSmall() throws EvaluationException {
732
        Operators.OBJECT_ENTITY_HURTSOUND.evaluate(new IVariable[]{});
×
733
    }
×
734

735
    @IntegrationTest(expected = EvaluationException.class)
736
    public void testInvalidInputTypeHurtSound() throws EvaluationException {
737
        Operators.OBJECT_ENTITY_HURTSOUND.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
738
    }
×
739

740
    /**
741
     * ----------------------------------- DEATHSOUND -----------------------------------
742
     */
743

744
    @IntegrationTest
745
    public void testEntityDeathSound() throws EvaluationException {
746
        IValue res1 = Operators.OBJECT_ENTITY_DEATHSOUND.evaluate(new IVariable[]{eZombie});
×
747
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
748
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), "minecraft:entity.zombie.death", "deathsound(zomie) = minecraft:entity.zombie.death");
×
749
    }
×
750

751
    @IntegrationTest(expected = EvaluationException.class)
752
    public void testInvalidInputSizeDeathSoundLarge() throws EvaluationException {
753
        Operators.OBJECT_ENTITY_DEATHSOUND.evaluate(new IVariable[]{eZombie, eZombie});
×
754
    }
×
755

756
    @IntegrationTest(expected = EvaluationException.class)
757
    public void testInvalidInputSizeDeathSoundSmall() throws EvaluationException {
758
        Operators.OBJECT_ENTITY_DEATHSOUND.evaluate(new IVariable[]{});
×
759
    }
×
760

761
    @IntegrationTest(expected = EvaluationException.class)
762
    public void testInvalidInputTypeDeathSound() throws EvaluationException {
763
        Operators.OBJECT_ENTITY_DEATHSOUND.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
764
    }
×
765

766
    /**
767
     * ----------------------------------- AGE -----------------------------------
768
     */
769

770
    @IntegrationTest
771
    public void testBlockAge() throws EvaluationException {
772
        IValue res1 = Operators.OBJECT_ENTITY_AGE.evaluate(new IVariable[]{eZombieAged});
×
773
        Asserts.check(res1 instanceof ValueTypeInteger.ValueInteger, "result is an integer");
×
774
        TestHelpers.assertEqual(((ValueTypeInteger.ValueInteger) res1).getRawValue(), 3, "age(zombie) = 3");
×
775
    }
×
776

777
    @IntegrationTest(expected = EvaluationException.class)
778
    public void testInvalidInputSizeAgeLarge() throws EvaluationException {
779
        Operators.OBJECT_ENTITY_AGE.evaluate(new IVariable[]{eZombieAged, eZombieAged});
×
780
    }
×
781

782
    @IntegrationTest(expected = EvaluationException.class)
783
    public void testInvalidInputSizeAgeSmall() throws EvaluationException {
784
        Operators.OBJECT_ENTITY_AGE.evaluate(new IVariable[]{});
×
785
    }
×
786

787
    @IntegrationTest(expected = EvaluationException.class)
788
    public void testInvalidInputTypeAge() throws EvaluationException {
789
        Operators.OBJECT_ENTITY_AGE.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
790
    }
×
791

792
    /**
793
     * ----------------------------------- ISCHILD -----------------------------------
794
     */
795

796
    @IntegrationTest
797
    public void testBlockIsChild() throws EvaluationException {
798
        IValue res1 = Operators.OBJECT_ENTITY_ISCHILD.evaluate(new IVariable[]{eZombie});
×
799
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
800
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "ischild(zombie) = false");
×
801

802
        IValue res2 = Operators.OBJECT_ENTITY_ISCHILD.evaluate(new IVariable[]{eZombieBaby});
×
803
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "ischild(zombie) = true");
×
804
    }
×
805

806
    @IntegrationTest(expected = EvaluationException.class)
807
    public void testInvalidInputSizeIsChildLarge() throws EvaluationException {
808
        Operators.OBJECT_ENTITY_ISCHILD.evaluate(new IVariable[]{eZombie, eZombie});
×
809
    }
×
810

811
    @IntegrationTest(expected = EvaluationException.class)
812
    public void testInvalidInputSizeIsChildSmall() throws EvaluationException {
813
        Operators.OBJECT_ENTITY_ISCHILD.evaluate(new IVariable[]{});
×
814
    }
×
815

816
    @IntegrationTest(expected = EvaluationException.class)
817
    public void testInvalidInputTypeIsChild() throws EvaluationException {
818
        Operators.OBJECT_ENTITY_ISCHILD.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
819
    }
×
820

821
    /**
822
     * ----------------------------------- CANBREED -----------------------------------
823
     */
824

825
    @IntegrationTest
826
    public void testBlockCanBreed() throws EvaluationException {
827
        IValue res1 = Operators.OBJECT_ENTITY_CANBREED.evaluate(new IVariable[]{eCow});
×
828
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
829
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), true, "canbreed(cow) = true");
×
830

831
        IValue res2 = Operators.OBJECT_ENTITY_CANBREED.evaluate(new IVariable[]{eCowAlreadyBred});
×
832
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), false, "canbreed(cowbred) = false");
×
833

834
        IValue res3 = Operators.OBJECT_ENTITY_CANBREED.evaluate(new IVariable[]{eCowBaby});
×
835
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), false, "canbreed(cowbaby) = false");
×
836
    }
×
837

838
    @IntegrationTest(expected = EvaluationException.class)
839
    public void testInvalidInputSizeCanBreedLarge() throws EvaluationException {
840
        Operators.OBJECT_ENTITY_CANBREED.evaluate(new IVariable[]{eZombie, eZombie});
×
841
    }
×
842

843
    @IntegrationTest(expected = EvaluationException.class)
844
    public void testInvalidInputSizeCanBreedSmall() throws EvaluationException {
845
        Operators.OBJECT_ENTITY_CANBREED.evaluate(new IVariable[]{});
×
846
    }
×
847

848
    @IntegrationTest(expected = EvaluationException.class)
849
    public void testInvalidInputTypeCanBreed() throws EvaluationException {
850
        Operators.OBJECT_ENTITY_CANBREED.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
851
    }
×
852

853
    /**
854
     * ----------------------------------- ISINLOVE -----------------------------------
855
     */
856

857
    @IntegrationTest
858
    public void testBlockIsInLove() throws EvaluationException {
859
        IValue res1 = Operators.OBJECT_ENTITY_ISINLOVE.evaluate(new IVariable[]{eCow});
×
860
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
861
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "isinlove(cow) = false");
×
862

863
        IValue res2 = Operators.OBJECT_ENTITY_ISINLOVE.evaluate(new IVariable[]{eCowInLove});
×
864
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "isinlove(cowloving) = true");
×
865
    }
×
866

867
    @IntegrationTest(expected = EvaluationException.class)
868
    public void testInvalidInputSizeIsInLoveLarge() throws EvaluationException {
869
        Operators.OBJECT_ENTITY_ISINLOVE.evaluate(new IVariable[]{eCow, eCow});
×
870
    }
×
871

872
    @IntegrationTest(expected = EvaluationException.class)
873
    public void testInvalidInputSizeIsInLoveSmall() throws EvaluationException {
874
        Operators.OBJECT_ENTITY_ISINLOVE.evaluate(new IVariable[]{});
×
875
    }
×
876

877
    @IntegrationTest(expected = EvaluationException.class)
878
    public void testInvalidInputTypeIsInLove() throws EvaluationException {
879
        Operators.OBJECT_ENTITY_ISINLOVE.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
880
    }
×
881

882
    /**
883
     * ----------------------------------- CANBREEDWITH -----------------------------------
884
     */
885

886
    @IntegrationTest
887
    public void testBlockCanBreedWith() throws EvaluationException {
888
        IValue res1 = Operators.OBJECT_ENTITY_CANBREEDWITH.evaluate(new IVariable[]{eCow, iCarrot});
×
889
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
890
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "canbreedwith(cow, carrot) = false");
×
891

892
        IValue res2 = Operators.OBJECT_ENTITY_CANBREEDWITH.evaluate(new IVariable[]{eCow, iWheat});
×
893
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "canbreedwith(cow, wheat) = true");
×
894

895
        IValue res3 = Operators.OBJECT_ENTITY_CANBREEDWITH.evaluate(new IVariable[]{ePig, iCarrot});
×
896
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), true, "canbreedwith(pig, carrot) = true");
×
897

898
        IValue res4 = Operators.OBJECT_ENTITY_CANBREEDWITH.evaluate(new IVariable[]{ePig, iWheat});
×
899
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res4).getRawValue(), false, "canbreedwith(pig, wheat) = false");
×
900
    }
×
901

902
    @IntegrationTest(expected = EvaluationException.class)
903
    public void testInvalidInputSizeCanBreedWithLarge() throws EvaluationException {
904
        Operators.OBJECT_ENTITY_CANBREEDWITH.evaluate(new IVariable[]{eCow, iCarrot, iCarrot});
×
905
    }
×
906

907
    @IntegrationTest(expected = EvaluationException.class)
908
    public void testInvalidInputSizeCanBreedWithSmall() throws EvaluationException {
909
        Operators.OBJECT_ENTITY_CANBREEDWITH.evaluate(new IVariable[]{eCow});
×
910
    }
×
911

912
    @IntegrationTest(expected = EvaluationException.class)
913
    public void testInvalidInputTypeCanBreedWith() throws EvaluationException {
914
        Operators.OBJECT_ENTITY_CANBREEDWITH.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
915
    }
×
916

917
    /**
918
     * ----------------------------------- ISSHEARABLE -----------------------------------
919
     */
920

921
    @IntegrationTest
922
    public void testBlockIsShearable() throws EvaluationException {
923
        IValue res1 = Operators.OBJECT_ENTITY_ISSHEARABLE.evaluate(new IVariable[]{eCow});
×
924
        Asserts.check(res1 instanceof ValueTypeBoolean.ValueBoolean, "result is a boolean");
×
925
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res1).getRawValue(), false, "isshearable(cow) = false");
×
926

927
        IValue res2 = Operators.OBJECT_ENTITY_ISSHEARABLE.evaluate(new IVariable[]{eSheep});
×
928
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res2).getRawValue(), true, "isshearable(sheep) = true");
×
929

930
        IValue res3 = Operators.OBJECT_ENTITY_ISSHEARABLE.evaluate(new IVariable[]{eSheepSheared});
×
931
        TestHelpers.assertEqual(((ValueTypeBoolean.ValueBoolean) res3).getRawValue(), false, "isshearable(sheepsheared) = false");
×
932
    }
×
933

934
    @IntegrationTest(expected = EvaluationException.class)
935
    public void testInvalidInputSizeIsShearableLarge() throws EvaluationException {
936
        Operators.OBJECT_ENTITY_ISSHEARABLE.evaluate(new IVariable[]{eCow, eCow});
×
937
    }
×
938

939
    @IntegrationTest(expected = EvaluationException.class)
940
    public void testInvalidInputSizeIsShearableSmall() throws EvaluationException {
941
        Operators.OBJECT_ENTITY_ISSHEARABLE.evaluate(new IVariable[]{});
×
942
    }
×
943

944
    @IntegrationTest(expected = EvaluationException.class)
945
    public void testInvalidInputTypeIsShearable() throws EvaluationException {
946
        Operators.OBJECT_ENTITY_ISSHEARABLE.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
947
    }
×
948

949
    /**
950
     * ----------------------------------- NBT -----------------------------------
951
     */
952

953
    @IntegrationTest
954
    public void testBlockNbt() throws EvaluationException {
955
        IValue res1 = Operators.OBJECT_ENTITY_NBT.evaluate(new IVariable[]{eZombie});
×
956
        Asserts.check(res1 instanceof ValueTypeNbt.ValueNbt, "result is an nbt tag");
×
957
        TestHelpers.assertNonEqual(((ValueTypeNbt.ValueNbt) res1).getRawValue(), new CompoundTag(), "isnbt(zombie) is not null");
×
958
    }
×
959

960
    @IntegrationTest(expected = EvaluationException.class)
961
    public void testInvalidInputSizeNbtLarge() throws EvaluationException {
962
        Operators.OBJECT_ENTITY_NBT.evaluate(new IVariable[]{eZombie, eZombie});
×
963
    }
×
964

965
    @IntegrationTest(expected = EvaluationException.class)
966
    public void testInvalidInputSizeNbtSmall() throws EvaluationException {
967
        Operators.OBJECT_ENTITY_NBT.evaluate(new IVariable[]{});
×
968
    }
×
969

970
    @IntegrationTest(expected = EvaluationException.class)
971
    public void testInvalidInputTypeNbt() throws EvaluationException {
972
        Operators.OBJECT_ENTITY_NBT.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
973
    }
×
974

975
    /**
976
     * ----------------------------------- TYPE -----------------------------------
977
     */
978

979
    @IntegrationTest
980
    public void testEntityType() throws EvaluationException {
981
        IValue res1 = Operators.OBJECT_ENTITY_TYPE.evaluate(new IVariable[]{eZombie});
×
982
        Asserts.check(res1 instanceof ValueTypeString.ValueString, "result is a string");
×
983
        TestHelpers.assertEqual(((ValueTypeString.ValueString) res1).getRawValue(), "minecraft:zombie", "entitytype(zombie) = minecraft:zombie");
×
984
    }
×
985

986
    @IntegrationTest(expected = EvaluationException.class)
987
    public void testInvalidInputSizeTypeLarge() throws EvaluationException {
988
        Operators.OBJECT_ENTITY_TYPE.evaluate(new IVariable[]{eZombie, eZombie});
×
989
    }
×
990

991
    @IntegrationTest(expected = EvaluationException.class)
992
    public void testInvalidInputSizeTypeSmall() throws EvaluationException {
993
        Operators.OBJECT_ENTITY_TYPE.evaluate(new IVariable[]{});
×
994
    }
×
995

996
    @IntegrationTest(expected = EvaluationException.class)
997
    public void testInvalidInputTypeType() throws EvaluationException {
998
        Operators.OBJECT_ENTITY_TYPE.evaluate(new IVariable[]{DUMMY_VARIABLE});
×
999
    }
×
1000

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