Skip to content

Commit

Permalink
Merge branch 'stankara-drones' of https://github.com/kolmafia/kolmafia
Browse files Browse the repository at this point in the history
…into stankara-drones
  • Loading branch information
Veracity0 committed Jul 22, 2022
2 parents ab0958a + a7592e5 commit d49b7df
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 3 deletions.
Expand Up @@ -8,11 +8,11 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import net.sourceforge.kolmafia.Expression;
import net.sourceforge.kolmafia.KoLCharacter;
import net.sourceforge.kolmafia.KoLConstants;
import net.sourceforge.kolmafia.KoLConstants.MafiaState;
import net.sourceforge.kolmafia.KoLmafia;
import net.sourceforge.kolmafia.ModifierExpression;
import net.sourceforge.kolmafia.RequestLogger;
import net.sourceforge.kolmafia.StaticEntity;
import net.sourceforge.kolmafia.objectpool.SkillPool;
Expand Down Expand Up @@ -129,8 +129,9 @@ public int getMax() {

if (this.max.startsWith("[") && this.max.endsWith("]")) {
String exprString = this.max.substring(1, this.max.length() - 1);
Expression expr =
new Expression(exprString, "daily limit for " + this.getType() + " " + this.getName());
var expr =
new ModifierExpression(
exprString, "daily limit for " + this.getType() + " " + this.getName());
if (!expr.hasErrors()) {
return (int) expr.eval();
}
Expand Down
8 changes: 8 additions & 0 deletions test/net/sourceforge/kolmafia/ExpressionTest.java
@@ -1,5 +1,7 @@
package net.sourceforge.kolmafia;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;

import net.sourceforge.kolmafia.preferences.Preferences;
Expand Down Expand Up @@ -77,4 +79,10 @@ public void canTrackBiggerInts() {
var exp = new Expression("32769", "integer bigger than 32768");
assertEquals(32769.0, exp.eval());
}

@Test
void canReportMultipleErrors() {
var exp = new Expression("1+(4*path(The Source))", "nonexistent function");
assertThat(exp.hasErrors(), equalTo(true));
}
}
Expand Up @@ -9,6 +9,7 @@
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.hasToString;

Expand Down Expand Up @@ -69,6 +70,18 @@ void canReadNonDefaultMaxUseEntry() {
assertThat(limit.getPref(), equalTo("_chocolateCigarsUsed"));
}

@Test
void canParseComplicatedExpression() {
var limit =
new DailyLimitDatabase.DailyLimit(
DailyLimitType.CAST,
"_somePref",
"[pref(a)*path(The Source)*fam(Mosquito)]",
1,
null);
assertThat(limit.getMax(), greaterThanOrEqualTo(0));
}

@Test
void canGetUsesRemaining() {
Preferences.setBoolean("_floundryItemUsed", true);
Expand Down

0 comments on commit d49b7df

Please sign in to comment.