Search in sources :

Example 1 with ModifierFactory

use of pcgen.rules.persistence.token.ModifierFactory in project pcgen by PCGen.

the class MultiplyNumberModifierTest method testInvalidConstruction.

@Test
public void testInvalidConstruction() {
    try {
        ModifierFactory m = new MultiplyModifierFactory();
        m.getModifier(100, null, new ManagerFactory() {
        }, null, null, null);
        fail("Expected MultiplyModifier with null multiply value to fail");
    } catch (IllegalArgumentException | NullPointerException e) {
    //Yep!
    }
}
Also used : ManagerFactory(pcgen.base.formula.base.ManagerFactory) ModifierFactory(pcgen.rules.persistence.token.ModifierFactory) Test(org.junit.Test)

Example 2 with ModifierFactory

use of pcgen.rules.persistence.token.ModifierFactory in project pcgen by PCGen.

the class SetSolverManagerTest method setUp.

@Before
public void setUp() throws Exception {
    FunctionLibrary fl = new SimpleFunctionLibrary();
    fl.addFunction(new DropIntoContext());
    OperatorLibrary ol = new SimpleOperatorLibrary();
    vc = new TrackingVariableCache();
    vsLib = new LegalScopeLibrary();
    EquipmentScope equipScope = new EquipmentScope();
    equipScope.setParent(globalScope);
    vsLib.registerScope(equipScope);
    sl = new VariableLibrary(vsLib);
    arrayManager = new ArrayFormatManager<>(stringManager, ',');
    ManagerFactory managerFactory = new ManagerFactory() {
    };
    siFactory = new ScopeInstanceFactory(vsLib);
    fm = new SimpleFormulaManager(ol, sl, siFactory, vc, new SolverFactory());
    fm = fm.getWith(FormulaManager.FUNCTION, fl);
    SolverFactory solverFactory = new SolverFactory();
    ModifierFactory am1 = new plugin.modifier.set.SetModifierFactory<>();
    PCGenModifier emptyArrayMod = am1.getModifier(0, "", managerFactory, null, globalScope, arrayManager);
    solverFactory.addSolverFormat(arrayManager.getManagedClass(), emptyArrayMod);
    NEPCalculation calc = new ProcessCalculation<>(new Equipment(), new BasicSet(), equipmentManager);
    CalculationModifier em = new CalculationModifier<>(calc, 0);
    solverFactory.addSolverFormat(Equipment.class, em);
    manager = new DynamicSolverManager(fm, managerFactory, solverFactory, vc);
    ModifierFactory mfn = new plugin.modifier.number.SetModifierFactory();
    Modifier mod = mfn.getModifier(0, "0", managerFactory, null, globalScope, numberManager);
    solverFactory.addSolverFormat(numberManager.getManagedClass(), mod);
    ModifierFactory mfs = new plugin.modifier.string.SetModifierFactory();
    Modifier mods = mfs.getModifier(0, "", managerFactory, null, globalScope, stringManager);
    solverFactory.addSolverFormat(stringManager.getManagedClass(), mods);
}
Also used : CalculationModifier(pcgen.base.calculation.CalculationModifier) ProcessCalculation(pcgen.cdom.content.ProcessCalculation) FunctionLibrary(pcgen.base.formula.base.FunctionLibrary) SimpleFunctionLibrary(pcgen.base.formula.inst.SimpleFunctionLibrary) NEPCalculation(pcgen.base.calculation.NEPCalculation) DropIntoContext(plugin.function.DropIntoContext) SimpleFormulaManager(pcgen.base.formula.inst.SimpleFormulaManager) ModifierFactory(pcgen.rules.persistence.token.ModifierFactory) EquipmentScope(pcgen.cdom.formula.scope.EquipmentScope) TrackingVariableCache(pcgen.base.solver.testsupport.TrackingVariableCache) OperatorLibrary(pcgen.base.formula.base.OperatorLibrary) SimpleOperatorLibrary(pcgen.base.formula.inst.SimpleOperatorLibrary) LegalScopeLibrary(pcgen.base.formula.base.LegalScopeLibrary) CalculationModifier(pcgen.base.calculation.CalculationModifier) PCGenModifier(pcgen.base.calculation.PCGenModifier) SimpleOperatorLibrary(pcgen.base.formula.inst.SimpleOperatorLibrary) SimpleFunctionLibrary(pcgen.base.formula.inst.SimpleFunctionLibrary) VariableLibrary(pcgen.base.formula.base.VariableLibrary) ManagerFactory(pcgen.base.formula.base.ManagerFactory) Equipment(pcgen.core.Equipment) ScopeInstanceFactory(pcgen.base.formula.inst.ScopeInstanceFactory) PCGenModifier(pcgen.base.calculation.PCGenModifier) Before(org.junit.Before)

Example 3 with ModifierFactory

use of pcgen.rules.persistence.token.ModifierFactory in project pcgen by PCGen.

the class SetSolverManagerTest method testProcessDependentSet.

@Test
public void testProcessDependentSet() {
    sl.assertLegalVariableID("Regions", globalScope, arrayManager);
    ScopeInstance scopeInst = siFactory.getGlobalInstance(globalScope.getName());
    VariableID<String[]> regions = (VariableID<String[]>) sl.getVariableID(scopeInst, "Regions");
    manager.createChannel(regions);
    Object[] array = vc.get(regions);
    List<Object> list = Arrays.asList(array);
    assertEquals(0, array.length);
    assertTrue(vc.set.contains(regions));
    assertEquals(1, vc.set.size());
    vc.reset();
    ModifierFactory am1 = new plugin.modifier.set.AddModifierFactory<>();
    PCGenModifier mod = am1.getModifier(2000, "France,England", new ManagerFactory() {
    }, null, globalScope, arrayManager);
    manager.addModifier(regions, mod, scopeInst);
    array = vc.get(regions);
    assertThat(2, is(array.length));
    list = Arrays.asList(array);
    assertTrue(list.contains("England"));
    assertTrue(list.contains("France"));
    assertTrue(vc.set.contains(regions));
    assertEquals(1, vc.set.size());
    vc.reset();
    ModifierFactory am2 = new plugin.modifier.set.AddModifierFactory<>();
    mod = am2.getModifier(3000, "Greece,England", new ManagerFactory() {
    }, null, globalScope, arrayManager);
    manager.addModifier(regions, mod, scopeInst);
    array = vc.get(regions);
    assertThat(3, is(array.length));
    list = Arrays.asList(array);
    assertTrue(list.contains("England"));
    assertTrue(list.contains("France"));
    assertTrue(list.contains("Greece"));
    assertTrue(vc.set.contains(regions));
    assertEquals(1, vc.set.size());
    vc.reset();
}
Also used : ScopeInstance(pcgen.base.formula.base.ScopeInstance) ManagerFactory(pcgen.base.formula.base.ManagerFactory) VariableID(pcgen.base.formula.base.VariableID) PCGenModifier(pcgen.base.calculation.PCGenModifier) ModifierFactory(pcgen.rules.persistence.token.ModifierFactory) Test(org.junit.Test)

Example 4 with ModifierFactory

use of pcgen.rules.persistence.token.ModifierFactory in project pcgen by PCGen.

the class MaxNumberModifierTest method testInvalidConstruction.

@Test
public void testInvalidConstruction() {
    try {
        ModifierFactory m = new MaxModifierFactory();
        m.getModifier(100, null, null, null, null, null);
        fail("Expected MaxModifier with null compare value to fail");
    } catch (IllegalArgumentException | NullPointerException e) {
    //Yep!
    }
}
Also used : ModifierFactory(pcgen.rules.persistence.token.ModifierFactory) Test(org.junit.Test)

Example 5 with ModifierFactory

use of pcgen.rules.persistence.token.ModifierFactory in project pcgen by PCGen.

the class SetBooleanModifierTest method testInvalidConstruction.

@Test
public void testInvalidConstruction() {
    try {
        ModifierFactory m = new SetModifierFactory();
        m.getModifier(100, null, new ManagerFactory() {
        }, null, null, null);
        fail("Expected SetModifier with null set value to fail");
    } catch (IllegalArgumentException | NullPointerException e) {
    //Yep!
    }
}
Also used : ManagerFactory(pcgen.base.formula.base.ManagerFactory) ModifierFactory(pcgen.rules.persistence.token.ModifierFactory) Test(org.junit.Test)

Aggregations

ModifierFactory (pcgen.rules.persistence.token.ModifierFactory)9 Test (org.junit.Test)8 ManagerFactory (pcgen.base.formula.base.ManagerFactory)8 PCGenModifier (pcgen.base.calculation.PCGenModifier)3 CalculationModifier (pcgen.base.calculation.CalculationModifier)2 NEPCalculation (pcgen.base.calculation.NEPCalculation)2 ScopeInstance (pcgen.base.formula.base.ScopeInstance)2 VariableID (pcgen.base.formula.base.VariableID)2 ProcessCalculation (pcgen.cdom.content.ProcessCalculation)2 Equipment (pcgen.core.Equipment)2 Before (org.junit.Before)1 FunctionLibrary (pcgen.base.formula.base.FunctionLibrary)1 LegalScope (pcgen.base.formula.base.LegalScope)1 LegalScopeLibrary (pcgen.base.formula.base.LegalScopeLibrary)1 OperatorLibrary (pcgen.base.formula.base.OperatorLibrary)1 VariableLibrary (pcgen.base.formula.base.VariableLibrary)1 ScopeInstanceFactory (pcgen.base.formula.inst.ScopeInstanceFactory)1 SimpleFormulaManager (pcgen.base.formula.inst.SimpleFormulaManager)1 SimpleFunctionLibrary (pcgen.base.formula.inst.SimpleFunctionLibrary)1 SimpleLegalScope (pcgen.base.formula.inst.SimpleLegalScope)1