Example #1
0
def rule_strength_tester(codelet):
    rule = codelet.arguments[0]
    rule.updateStrength()
    probability = formulas.temperatureAdjustedProbability(
        rule.totalStrength / 100.0)
    assert random.random() <= probability
    coderack.newCodelet('rule-builder', codelet, rule.totalStrength, rule)
Example #2
0
def description_strength_tester(codelet):
    description = codelet.arguments[0]
    description.descriptor.buffer = 100.0
    description.updateStrength()
    strength = description.totalStrength
    probability = formulas.temperatureAdjustedProbability(strength / 100.0)
    assert formulas.coinFlip(probability)
    coderack.newCodelet('description-builder', codelet, strength)
Example #3
0
def group_strength_tester(codelet):
    # update strength value of the group
    group = codelet.arguments[0]
    __showWhichStringObjectIsFrom(group)
    group.updateStrength()
    strength = group.totalStrength
    probability = formulas.temperatureAdjustedProbability(strength / 100.0)
    assert random.random() <= probability
    # it is strong enough - post builder  & activate nodes
    group.groupCategory.getRelatedNode(slipnet.bondCategory).buffer = 100.0
    if group.directionCategory:
        group.directionCategory.buffer = 100.0
    coderack.newCodelet('group-builder', codelet, strength)
Example #4
0
def bond_strength_tester(codelet):
    bond = codelet.arguments[0]
    __showWhichStringObjectIsFrom(bond)
    bond.updateStrength()
    strength = bond.totalStrength
    probability = formulas.temperatureAdjustedProbability(strength / 100.0)
    logging.info('bond strength = %d for %s', strength, bond)
    assert formulas.coinFlip(probability)
    bond.facet.buffer = 100.0
    bond.sourceDescriptor.buffer = 100.0
    bond.destinationDescriptor.buffer = 100.0
    logging.info("succeeded: posting bond-builder")
    coderack.newCodelet('bond-builder', codelet, strength)
Example #5
0
def correspondence_strength_tester(codelet):
    correspondence = codelet.arguments[0]
    objectFromInitial = correspondence.objectFromInitial
    objectFromTarget = correspondence.objectFromTarget
    assert objectFromInitial in workspace.objects and (objectFromTarget in workspace.objects or correspondence.flipTargetObject and not workspace.target.equivalentGroup(objectFromTarget.flipped_version()))
    correspondence.update_strength()
    strength = correspondence.total_strength
    probability = temperatureAdjustedProbability(strength / 100.0)
    assert random.random() <= probability
    # activate some concepts
    for mapping in correspondence.conceptMappings:
        mapping.initialDescriptionType.buffer = 100.0
        mapping.initialDescriptor.buffer = 100.0
        mapping.targetDescriptionType.buffer = 100.0
        mapping.targetDescriptor.buffer = 100.0
    coderack.newCodelet('correspondence-builder', codelet, strength, correspondence)