protected List generateMatchingFacts()

in drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/turtle/runtime/generator/AdvancedOperators2FactsGenerator.java [37:104]


    protected List<Object> generateMatchingFacts(final int totalNumber) {
        // generate needed number of facts
        final List<Object> facts = new ArrayList<>();
        final int nrOfFactsInInnerLoop = 8;
        final int innerLoops = (config.getNumberOfRulesInDRL() / config.getNumberOfRuleTypesInDRL());
        final int outerLoops = (totalNumber / (innerLoops * nrOfFactsInInnerLoop));
        for (int j = 0; j < outerLoops; j++) {
            for (int i = 0; i < innerLoops; i++) {
                currentLoop = i;
                ///////////////////////////////////////////////////////////////
                // rule "twoCustomersWithSameNameInfixAnd"
                Customer cust = new Customer("Johnny" + getPlaceHolderValue("number1"), "Cheddar" + getRandomInt(0, 1000000));
                cust.setUuid("twoCustomersWithSameNameInfixAnd");
                final int randomInt = getRandomInt(0, 1000000);
                cust.setEmail("someCoolMail" + randomInt + "@somewhere.com");
                facts.add(cust);
                cust = new Customer("Johnny" + getPlaceHolderValue("number1"), "Cheddar" + getRandomInt(0, 1000000));
                cust.setUuid("twoCustomersWithSameNameInfixAnd");
                cust.setEmail("someCoolMail" + randomInt + "@somewhere.com");
                facts.add(cust);

                ///////////////////////////////////////////////////////////////
                // rule "accountWithNumberGreaterThanOrLessThanInfixOr"
                Account acc = new Account();
                acc.setNumber(getRandomInt(getPlaceHolderValue("number1"), getPlaceHolderValue("number2")));
                acc.setName("accountName" + randomInt);
                acc.setUuid("accountWithNumberGreaterThanOrLessThanInfixOr");
                acc.setInterestRate((double) getRandomInt(1000000, 2000000));
                facts.add(acc);
                acc = new Account();
                acc.setNumber(getRandomInt(getPlaceHolderValue("number1"), getPlaceHolderValue("number2")));
                acc.setName("accountName" + randomInt);
                acc.setUuid("accountWithNumberGreaterThanOrLessThanInfixOr");
                acc.setInterestRate((double) getRandomInt(1000000, 2000000));
                facts.add(acc);

                ///////////////////////////////////////////////////////////////
                // rule "transactionWithAmountGreaterThanOrLessThanPrefixOr"
                Transaction tr = new Transaction();
                tr.setUuid("transactionWithAmountGreaterThanOrLessThanPrefixOr" + getPlaceHolderValue("number1"));
                tr.setAmount(getRandomInt(getPlaceHolderValue("number1"), getPlaceHolderValue("number2")));
                tr.setDescription("someUsefulTransDescription" + randomInt);
                facts.add(tr);
                tr = new Transaction();
                tr.setUuid("transactionWithAmountGreaterThanOrLessThanPrefixOr" + getPlaceHolderValue("number1"));
                tr.setAmount(getRandomInt(getPlaceHolderValue("number1"), getPlaceHolderValue("number2")));
                tr.setDescription("someUsefulTransDescription" + randomInt);
                facts.add(tr);

                ///////////////////////////////////////////////////////////////
                // rule "transactionWithOneOfSpecifiedDescriptions"
                tr = new Transaction();
                final String[] descriptions = new String[]{"good", "great", "super"};
                tr.setDescription(descriptions[getRandomInt(0, 2)] + getPlaceHolderValue("number1"));
                tr.setUuid("transactionWithOneOfSpecifiedDescriptions");
                facts.add(tr);

                ///////////////////////////////////////////////////////////////
                // rule "cityIsBrnoOstravaPrahaZlin"
                final Address addr = new Address();
                final String[] cities = new String[]{"Brno", "Ostrava", "Praha", "Zlin"};
                addr.setCity(cities[getRandomInt(0, 2)] + getPlaceHolderValue("number1"));
                addr.setUuid("cityIsBrnoOstravaPrahaZlin");
                facts.add(addr);
            }
        }
        return facts;
    }