Example usage for org.apache.commons.math3.fraction BigFraction BigFraction

List of usage examples for org.apache.commons.math3.fraction BigFraction BigFraction

Introduction

In this page you can find the example usage for org.apache.commons.math3.fraction BigFraction BigFraction.

Prototype

public BigFraction(final long num) 

Source Link

Document

Create a BigFraction equivalent to the passed long, ie "num / 1".

Usage

From source file:com.netflix.imfutility.itunes.asset.ChapterAssetProcessorTest.java

@Test
public void testCorrectChapter() throws Exception {
    ChapterAssetProcessor processor = new ChapterAssetProcessor(metadataXmlProvider,
            TemplateParameterContextCreator.getWorkingDir());

    processor.setInputChapterItem(ChaptersXmlSampleBuilder.buildInputChapter())
            .setAspectRatio(new BigFraction(16).divide(9)).setChapterIndex(1)
            .process(AssetUtils.getTestCorrectChapterFile());

    File asset = new File(TemplateParameterContextCreator.getWorkingDir(), "chapter01.jpg");
    assertTrue(asset.exists());// w  w  w . j a v  a  2s .  c o m
    assertTrue(asset.isFile());

    ChapterAsset chapterAsset = metadataXmlProvider.getRootElement().getChapterAssets().get(0);
    assertNull(chapterAsset.getType());
    assertNull(chapterAsset.getRole());
    assertEquals("chapter01.jpg", chapterAsset.getFileName());
}

From source file:com.netflix.imfutility.util.ConversionHelper.java

/**
 * Transforms edit units to a timecode according to the given edit unit rate.
 * <ul>/*from  w  w w.j a v  a2  s.  c o  m*/
 * <li>An example of edit units is a frame.</li>
 * <li>The output timecode has the following format 'hh:mm:ss.xxx', where xxx is milliseconds.</li>
 * </ul>
 *
 * @param eu         edit units to be transformed
 * @param unitsInSec edit unit rate
 * @return timecode as a string in "hh:mm:ss.mss" format.
 */
public static String editUnitToTimecode(BigInteger eu, BigFraction unitsInSec) {
    BigFraction editUnits = new BigFraction(eu);
    BigFraction unitsInMin = unitsInSec.multiply(new BigFraction(60));
    BigFraction unitsInHour = unitsInSec.multiply(new BigFraction(60 * 60));

    int hours = editUnits.divide(unitsInHour).intValue();
    int minutes = editUnits.subtract(unitsInHour.multiply(hours)).divide(unitsInMin).intValue();
    int seconds = editUnits.subtract(unitsInHour.multiply(hours)).subtract(unitsInMin.multiply(minutes))
            .divide(unitsInSec).intValue();
    BigFraction units = editUnits.subtract(unitsInHour.multiply(hours)).subtract(unitsInMin.multiply(minutes))
            .subtract(unitsInSec.multiply(seconds));
    int milliseconds = new BigFraction(1000).divide(unitsInSec).multiply(units).intValue();

    return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, milliseconds);
}

From source file:controller.Parser.java

static LP parse(File f) throws FileNotFoundException {
    Scanner s = new Scanner(f);
    Pattern p = Pattern.compile(dvarreg);

    HashMap<String, Integer> x = new HashMap<String, Integer>();
    HashMap<Integer, String> xReverse = new HashMap<Integer, String>();
    int xcol = 0;

    /* Get input size and names of the decision variables. */
    int constraints = -1; // Take the objective function into account.
    while (s.hasNextLine()) {
        String line = s.nextLine();

        if (line.trim().equals(""))
            continue;

        /* /*from w  w w  . j a  v  a2  s. co  m*/
         * TODO: Beware, will now accept invalid
         * files with multiple objective functions.
         */
        /*            if (!validConstraint(line) && !validObj(line)) {
        String e = "Unsupported format in file " + f;
        throw new IllegalArgumentException(e);
                    } */

        Matcher m = p.matcher(line);

        while (m.find()) {
            String var = m.group(3);
            if (validVarName(var) && !x.containsKey(var)) {
                x.put(var, xcol);
                xReverse.put(xcol++, var);
            }
        }
        constraints++;
    }

    BigFraction[][] Ndata = new BigFraction[constraints][x.size()];
    for (int i = 0; i < Ndata.length; i++) {
        Arrays.fill(Ndata[i], BigFraction.ZERO);
    }
    BigFraction[] bdata = new BigFraction[constraints];
    BigFraction[] cdata = new BigFraction[x.size()];
    Arrays.fill(cdata, BigFraction.ZERO);

    s = new Scanner(f);

    String obj = s.nextLine();
    Matcher m = p.matcher(obj);

    while (m.find()) {
        String var = m.group(3);
        if (!x.containsKey(var))
            continue;

        String sign = m.group(1);
        if (sign == null)
            sign = "+";

        String coeffStr = m.group(2);
        BigFraction coeff;
        if (coeffStr == null) {
            coeff = BigFraction.ONE;
        } else {
            coeff = new BigFraction(Double.parseDouble(coeffStr));
        }
        if (sign.equals("-"))
            coeff = coeff.negate();

        cdata[x.get(var)] = coeff;
    }

    int row = 0;
    while (s.hasNextLine()) {
        String line = s.nextLine();
        String[] split = line.split("<=");
        if (line.trim().equals(""))
            continue;
        if (split.length != 2) {
            String e = "Unsupported format in file " + f;
            throw new IllegalArgumentException(e);
        }
        m = p.matcher(line);
        bdata[row] = new BigFraction(Double.parseDouble(split[1]));

        while (m.find()) {
            String var = m.group(3);
            if (!x.containsKey(var))
                continue;

            String sign = m.group(1);
            if (sign == null)
                sign = "+";

            String coeffStr = m.group(2);
            BigFraction coeff;
            if (coeffStr == null) {
                coeff = BigFraction.ONE;
            } else {
                coeff = new BigFraction(Double.parseDouble(coeffStr));
            }
            if (sign.equals("-"))
                coeff = coeff.negate();

            Ndata[row][x.get(var)] = coeff;
        }
        row++;
    }

    return new LP(new Array2DRowFieldMatrix<BigFraction>(Ndata), new ArrayFieldVector<BigFraction>(bdata),
            new ArrayFieldVector<BigFraction>(cdata), xReverse);
}

From source file:com.netflix.imfutility.ConversionHelperTest.java

@Test
public void toNewEditRate() {
    assertEquals(100, ConversionHelper.toNewEditRate(BigInteger.valueOf(160160), new BigFraction(48000),
            new BigFraction(30000, 1001)));
    assertEquals(50,/*from  w  w w  .j  ava2 s .  c  o  m*/
            ConversionHelper.toNewEditRate(BigInteger.valueOf(100), new BigFraction(50), new BigFraction(25)));
    assertEquals(55,
            ConversionHelper.toNewEditRate(BigInteger.valueOf(110), new BigFraction(50), new BigFraction(25)));
}

From source file:com.netflix.imfutility.itunes.image.ImageValidator.java

private BigFraction getImageAspectRatio() {
    return new BigFraction(image.getWidth()).divide(image.getHeight());
}

From source file:com.netflix.imfutility.itunes.asset.ChapterAssetProcessorTest.java

@Test(expected = ImageValidationException.class)
public void testInvalidChapter() throws Exception {
    ChapterAssetProcessor processor = new ChapterAssetProcessor(metadataXmlProvider,
            TemplateParameterContextCreator.getWorkingDir());

    processor.setInputChapterItem(ChaptersXmlSampleBuilder.buildInputChapter())
            //  aspect ratio of image 16:9
            .setAspectRatio(new BigFraction(4).divide(3)).setChapterIndex(1)
            .process(AssetUtils.getTestCorrectChapterFile());
}

From source file:com.netflix.imfutility.itunes.destcontext.VideoDestContextResolveStrategyTest.java

@Test(expected = ConversionException.class)
public void testIncorrectWidth() {
    VideoDestContextResolveStrategy resolveStrategy = new VideoDestContextResolveStrategy();

    resolveStrategy.setPackageType(ITunesPackageType.film).setWidth(639).setHeight(2160)
            .setFrameRate(new BigFraction(60)).setInterlaced(true);
    resolveStrategy.resolveContext(map);
}

From source file:com.netflix.imfutility.util.ConversionHelper.java

/**
 * Transforms milliseconds to an SMPTE timecode according to the given edit unit rate.
 * <ul>//from w  w  w.j  av  a 2 s.  co m
 * <li>An example of edit units is a frame.</li>
 * <li>The output timecode has the following format 'hh:mm:ss:ff'.</li>
 * </ul>
 *
 * @param milliseconds milliseconds to be transformed
 * @param unitsInSec   edit unit rate
 * @return timecode as a string in "hh:mm:ss:ff" format.
 */
public static String msToSmpteTimecode(long milliseconds, BigFraction unitsInSec) {
    BigFraction ms = new BigFraction(milliseconds);
    BigFraction msInMin = new BigFraction(60 * 1000);
    BigFraction msInHour = new BigFraction(60 * 60 * 1000);
    BigFraction msInSec = new BigFraction(1000);
    BigFraction unitsInMs = unitsInSec.divide(msInSec);

    int hours = ms.divide(msInHour).intValue();
    int minutes = ms.subtract(msInHour.multiply(hours)).divide(msInMin).intValue();
    int seconds = ms.subtract(msInHour.multiply(hours)).subtract(msInMin.multiply(minutes)).divide(msInSec)
            .intValue();
    int units = ms.subtract(msInHour.multiply(hours)).subtract(msInMin.multiply(minutes))
            .subtract(msInSec.multiply(seconds)).multiply(unitsInMs).intValue();

    return String.format("%02d:%02d:%02d:%02d", hours, minutes, seconds, units);
}

From source file:com.netflix.imfutility.itunes.asset.ChapterAssetProcessorTest.java

@Test(expected = AssetValidationException.class)
public void testInvalidFile() throws Exception {
    ChapterAssetProcessor processor = new ChapterAssetProcessor(metadataXmlProvider,
            TemplateParameterContextCreator.getWorkingDir());

    processor.setInputChapterItem(ChaptersXmlSampleBuilder.buildInputChapter())
            .setAspectRatio(new BigFraction(16).divide(9)).setChapterIndex(1).process(TestUtils.getTestFile());
}

From source file:cc.redberry.core.number.Rational.java

/**
 * @see BigFraction#BigFraction(java.math.BigInteger)
 */
public Rational(BigInteger num) {
    checkNotNull(num);
    fraction = new BigFraction(num);
}