Java 类org.apache.commons.lang.math.Fraction 实例源码

项目:ProjectAres    文件:Team.java   
/**
 * Get the maximum number of players currently allowed on this team without
 * exceeding any limits.
 */
public int getMaxBalancedSize() {
    // Find the minimum fullness among other teams
    final Fraction minFullness = (Fraction) module().getTeams()
                                                    .stream()
                                                    .filter(team -> !equals(team))
                                                    .map(team -> team.getFullness(Team::getMaxOverfill))
                                                    .min(Comparator.naturalOrder())
                                                    .orElse(Fraction.ONE);

    // Calculate the dynamic limit to maintain balance with other teams (this can be zero)
    int slots = Numbers.ceil(Comparables.min(Fraction.ONE, minFullness.multiplyBy(MAX_IMBALANCE))
                                        .multiplyBy(Fraction.getFraction(getMaxOverfill(), 1)));

    // Clamp to the static limit defined for this team (cannot be zero unless the static limit is zero)
    return Math.min(getMaxOverfill(), Math.max(1, slots));
}
项目:dashencrypt    文件:ManifestOptimizer.java   
public static void adjustMinMaxFrameRate(AdaptationSetType adaptationSetType) {
    RepresentationType representationArray[] = adaptationSetType.getRepresentationArray();
    Fraction min = null, max = null;
    for (RepresentationType representationType : representationArray) {
        Node attr = representationType.getDomNode().getAttributes().getNamedItem("frameRate");
        if (attr != null) {
            Fraction f = Fraction.getFraction(attr.getNodeValue());

            min = min == null || f.compareTo(min) < 0 ? f : min;
            max = max == null || f.compareTo(max) > 0 ? f : max;
        }
    }
    if (max != null && !min.equals(max)) { // min/max doesn't make sense when both values are the same
        Node adaptationSet = adaptationSetType.getDomNode();
        Node minAttr =  adaptationSet.getOwnerDocument().createAttribute("minFrameRate");
        minAttr.setNodeValue(min.toString());
        adaptationSet.getAttributes().setNamedItem(minAttr);
        Node maxAttr =  adaptationSet.getOwnerDocument().createAttribute("maxFrameRate");
        maxAttr.setNodeValue(max.toString());
        adaptationSet.getAttributes().setNamedItem(maxAttr);

    }
}
项目:finances    文件:StockSplitSecurityHandler.java   
public List<Transaction> convertRecord(Account account, QifRecord record) throws QuickenException {
    String securityName = record.getValue(QifField.SECURITY);
    Date splitDate = record.getDate(QifField.DATE);
    BigDecimal ratio = record.getBigDecimal(QifField.SHARES).divide(BigDecimal.TEN);
    Fraction fraction = Fraction.getFraction(ratio.doubleValue());
    securityOperations.findOrCreateSplit(securityName, splitDate, new BigDecimal(fraction.getDenominator()), new BigDecimal(fraction.getNumerator()));
    return Collections.emptyList();
}
项目:StudyGuide    文件:CourseGroupCreditsPercentageConstraint.java   
@Override
public void validate() {
    List<Course> groupCourses = getCourseGroup().courseListProperty().get();
    Stream<Course> fulfilledGroupCourses = semesterPlan.allCourseEnrollments().filter(CourseEnrollment::isFulfilled)
            .map(CourseEnrollment::getCourse).filter(groupCourses::contains);
    int creditSum = groupCourses.stream().map(c -> c.getCredits().getCreditValue()).reduce(0, Integer::sum);
    int fulfilledSum = fulfilledGroupCourses.map(c -> c.getCredits().getCreditValue()).reduce(0, Integer::sum);
    Fraction gotFraction = Fraction.getFraction(fulfilledSum, creditSum);
    if (neededFraction.compareTo(gotFraction) > 0) {
        fireBrokenEvent(generateMessage(gotFraction, neededFraction));
    } else {
        fireFixedEvent(this);
    }
}
项目:dashencrypt    文件:ManifestHelper.java   
public static String convertFramerate(double vrate) {
    Fraction f1 = Fraction.getFraction((int) (vrate * 1001), 1001);
    Fraction f2 = Fraction.getFraction((int) (vrate * 1000), 1000);
    double d1 = Math.abs(f1.doubleValue() - vrate);
    double d2 = Math.abs(f2.doubleValue() - vrate);
    if (d1 < d2) {
        return f1.getNumerator() + "/" + f1.getDenominator();
    } else {
        return f2.getNumerator() + "/" + f2.getDenominator();
    }


}
项目:ProjectAres    文件:Team.java   
/**
 * Get the "fullness" of this team, relative to some capacity returned by
 * the given function. The return value is always in the range 0 to 1.
 */
public Fraction getFullness(ToIntFunction<? super Team> maxFunction) {
    final int max = maxFunction.applyAsInt(this);
    return max == 0 ? Fraction.ONE
                    : Fraction.getReducedFraction(getSize(), max);
}
项目:OSCAR-ConCert    文件:ReportStatistic.java   
public ReportStatistic(int count, int size) {
    fraction = Fraction.getFraction(count, size);
}
项目:OSCAR-ConCert    文件:ReportStatistic.java   
public void setSize(int size)
{
       fraction = Fraction.getFraction(getCount(), size);
}
项目:oscar-old    文件:ReportStatistic.java   
public ReportStatistic(int count, int size) {
    fraction = Fraction.getFraction(count, size);
}
项目:oscar-old    文件:ReportStatistic.java   
public void setSize(int size)
{
       fraction = Fraction.getFraction(getCount(), size);
}
项目:StudyGuide    文件:CourseGroupCreditsPercentageConstraint.java   
/**
 * Default constructor.
 *
 * @param courseGroup the referenced course group
 * @param neededFraction the minimum fraction of fulfilled course credits the student needs to achieve
 */
public CourseGroupCreditsPercentageConstraint(CourseGroup courseGroup, Fraction neededFraction) {
    super(courseGroup);
    this.neededFraction = neededFraction;
}
项目:StudyGuide    文件:CourseGroupCreditsPercentageConstraint.java   
/**
 * Utility method for converting {@link Fraction}s to percentage points with two decimal places.
 * To be replaced with Apache's {@code lang3} Fraction.
 *
 * @param fraction the fraction to convert
 * @return the percentage representation in a String
 */
private static String toPercent(Fraction fraction) {
    // TODO math3 fraction.percentageValue()
    return percentageFormat.format(fraction.doubleValue() * 100d) + "%";
}
项目:StudyGuide    文件:CourseGroupCreditsPercentageConstraint.java   
/**
 * The fraction of fulfilled course credit sum to the total group credit sum needed to pass this constraint.
 *
 * @return the fulfilled course credit sum fraction needed
 */
@JsonIgnore
private Fraction getNeededFraction() {
    return neededFraction;
}
项目:StudyGuide    文件:CourseGroupCreditsPercentageConstraint.java   
/**
 * Util method for Jackson, to deserialize the {@link #neededFraction} in a sane way.
 *
 * @param neededFractionString the needed fraction in a string representation
 */
@JsonProperty("neededFraction")
private void setNeededFractionString(String neededFractionString) {
    this.neededFraction = Fraction.getFraction(neededFractionString);
}
项目:StudyGuide    文件:CourseGroupCreditsPercentageConstraint.java   
/**
 * Generates a message from the given parameters (localized). Used for populating the message of
 * {@link StringMessageEvent}s (usually upon breaking a constraint).
 *
 * @param got the passed course fraction the student achieved
 * @param needed the fraction of passed courses the student needs to pass
 * @return the String to use as a message, localized
 */
private String generateMessage(Fraction got, Fraction needed) {
    return String.format(messages.getString(message), toPercent(needed), toPercent(got));
}