// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/types/Ion.java
// public class Ion implements Comparable<Ion> {
//     private static String SEPERATOR = ":";
//     private static int PRECESSION = 6;
// 
//     private Double mass;
//     private Double intensity;
// 
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (!(o instanceof Ion)) return false;
// 
//         Ion ion = (Ion) o;
// 
//         if (!getMass().equals(ion.getMass())) return false;
//         return getIntensity().equals(ion.getIntensity());
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = getMass().hashCode();
//         result = 31 * result + getIntensity().hashCode();
//         return result;
//     }
// 
//     public Ion() {}
// 
//     public Ion(double mass, double intensity) {
//         this.mass = mass;
//         this.intensity = intensity;
//     }
// 
//     public Double getIntensity() {
//         return intensity;
//     }
// 
//     public void setIntensity(Double intensity) {
//         this.intensity = intensity;
//     }
// 
//     public Double getMass() {
//         return mass;
//     }
// 
//     public void setMass(Double mass) {
//         this.mass = mass;
//     }
// 
//     public String toString() {
//         return String.format("%."+PRECESSION+"f",this.getMass()) + SEPERATOR + String.format("%." + PRECESSION + "f", this.getIntensity());
//     }
// 
//     public int compareTo(Ion o) {
//         return getMass().compareTo(o.getMass());
//     }
// }
// 
// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/types/SpectraType.java
// public enum SpectraType {
//     MS('1'),
//     NMR('2'),
//     UV('3'),
//     IR('4'),
//     RAMAN('5');
// 
//     /**
//      * identifier has to be a single character
//      */
//     private final char identifier;
// 
//     /**
//      * creates a new spectra type with the assoicated reference number
//      *
//      * @param referenceNumber
//      */
//     SpectraType(char referenceNumber) {
//         this.identifier = referenceNumber;
//     }
// 
//     /**
//      * access to it's identifier
//      *
//      * @return
//      */
//     public char getIdentifier() {
//         return this.identifier;
//     }
// }
// 
// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/types/SpectrumImpl.java
// public class SpectrumImpl implements Spectrum {
// 
//     private String origin;
//     private List<Ion> ions;
//     private SpectraType type;
// 
//     public SpectrumImpl(List<Ion> ions,  String origin, SpectraType type) {
//         this.ions = ions;
//         this.origin = origin;
//         this.type = type;
//     }
// 
// 
//     protected SpectrumImpl(){
// 
//     }
// 
//     public SpectrumImpl(List<Ion> ions, SpectraType ms) {
//         this(ions,"unknown",ms);
// 
//     }
// 
//     public String getOrigin() {
//         return origin;
//     }
// 
//     public void setOrigin(String origin) {
//         this.origin = origin;
//     }
// 
//     public SpectraType getType() {
//         return type;
//     }
// 
//     public void setType(SpectraType type) {
//         this.type = type;
//     }
// 
//     public List<Ion> getIons() {
//         return ions;
//     }
// 
//     public void setIons(List<Ion> ions) {
//         this.ions = ions;
//     }
// 
// 
//     public Spectrum toRelative(int scale) {
//         double max = 0;
// 
//         for (Ion ion : getIons()) {
//             if (ion.getIntensity() > max) {
//                 max = ion.getIntensity();
//             }
//         }
// 
//         ArrayList<Ion> ions = new ArrayList<Ion>(getIons().size());
//         for (Ion ion : getIons()) {
//             ions.add(new Ion(ion.getMass(), ion.getIntensity() / max * scale));
//         }
//         return new SpectrumImpl(ions, getOrigin(), getType());
//     }
// 
// }


import edu.ucdavis.fiehnlab.spectra.hash.core.types.Ion;
import edu.ucdavis.fiehnlab.spectra.hash.core.types.SpectraType;
import edu.ucdavis.fiehnlab.spectra.hash.core.types.SpectrumImpl;
import org.junit.Test;
import java.util.ArrayList;
import static org.junit.Assert.assertTrue;
package edu.ucdavis.fiehnlab.spectra.hash.core.impl;




/**
 *  */
public class SpectrumImplTest {

    @Test
    public void testGetIons() throws Exception {
        Ion ion = new Ion(120, 111);
        ArrayList<Ion> list = new ArrayList<Ion>();
        list.add(ion);
        SpectrumImpl impl = new SpectrumImpl(list, "test", SpectraType.MS);

// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/types/Ion.java
// public class Ion implements Comparable<Ion> {
//     private static String SEPERATOR = ":";
//     private static int PRECESSION = 6;
// 
//     private Double mass;
//     private Double intensity;
// 
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (!(o instanceof Ion)) return false;
// 
//         Ion ion = (Ion) o;
// 
//         if (!getMass().equals(ion.getMass())) return false;
//         return getIntensity().equals(ion.getIntensity());
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = getMass().hashCode();
//         result = 31 * result + getIntensity().hashCode();
//         return result;
//     }
// 
//     public Ion() {}
// 
//     public Ion(double mass, double intensity) {
//         this.mass = mass;
//         this.intensity = intensity;
//     }
// 
//     public Double getIntensity() {
//         return intensity;
//     }
// 
//     public void setIntensity(Double intensity) {
//         this.intensity = intensity;
//     }
// 
//     public Double getMass() {
//         return mass;
//     }
// 
//     public void setMass(Double mass) {
//         this.mass = mass;
//     }
// 
//     public String toString() {
//         return String.format("%."+PRECESSION+"f",this.getMass()) + SEPERATOR + String.format("%." + PRECESSION + "f", this.getIntensity());
//     }
// 
//     public int compareTo(Ion o) {
//         return getMass().compareTo(o.getMass());
//     }
// }
// 
// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/types/SpectraType.java
// public enum SpectraType {
//     MS('1'),
//     NMR('2'),
//     UV('3'),
//     IR('4'),
//     RAMAN('5');
// 
//     /**
//      * identifier has to be a single character
//      */
//     private final char identifier;
// 
//     /**
//      * creates a new spectra type with the assoicated reference number
//      *
//      * @param referenceNumber
//      */
//     SpectraType(char referenceNumber) {
//         this.identifier = referenceNumber;
//     }
// 
//     /**
//      * access to it's identifier
//      *
//      * @return
//      */
//     public char getIdentifier() {
//         return this.identifier;
//     }
// }
// 
// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/types/SpectrumImpl.java
// public class SpectrumImpl implements Spectrum {
// 
//     private String origin;
//     private List<Ion> ions;
//     private SpectraType type;
// 
//     public SpectrumImpl(List<Ion> ions,  String origin, SpectraType type) {
//         this.ions = ions;
//         this.origin = origin;
//         this.type = type;
//     }
// 
// 
//     protected SpectrumImpl(){
// 
//     }
// 
//     public SpectrumImpl(List<Ion> ions, SpectraType ms) {
//         this(ions,"unknown",ms);
// 
//     }
// 
//     public String getOrigin() {
//         return origin;
//     }
// 
//     public void setOrigin(String origin) {
//         this.origin = origin;
//     }
// 
//     public SpectraType getType() {
//         return type;
//     }
// 
//     public void setType(SpectraType type) {
//         this.type = type;
//     }
// 
//     public List<Ion> getIons() {
//         return ions;
//     }
// 
//     public void setIons(List<Ion> ions) {
//         this.ions = ions;
//     }
// 
// 
//     public Spectrum toRelative(int scale) {
//         double max = 0;
// 
//         for (Ion ion : getIons()) {
//             if (ion.getIntensity() > max) {
//                 max = ion.getIntensity();
//             }
//         }
// 
//         ArrayList<Ion> ions = new ArrayList<Ion>(getIons().size());
//         for (Ion ion : getIons()) {
//             ions.add(new Ion(ion.getMass(), ion.getIntensity() / max * scale));
//         }
//         return new SpectrumImpl(ions, getOrigin(), getType());
//     }
// 
// }


// Path: core/src/test/java/edu/ucdavis/fiehnlab/spectra/hash/core/impl/SpectrumImplTest.java
import edu.ucdavis.fiehnlab.spectra.hash.core.types.Ion;
import edu.ucdavis.fiehnlab.spectra.hash.core.types.SpectraType;
import edu.ucdavis.fiehnlab.spectra.hash.core.types.SpectrumImpl;
import org.junit.Test;
import java.util.ArrayList;
import static org.junit.Assert.assertTrue;

package edu.ucdavis.fiehnlab.spectra.hash.core.impl;




/**
 *  */
public class SpectrumImplTest {

    @Test
    public void testGetIons() throws Exception {
        Ion ion = new Ion(120, 111);
        ArrayList<Ion> list = new ArrayList<Ion>();
        list.add(ion);
        SpectrumImpl impl = new SpectrumImpl(list, "test", SpectraType.MS);

        assertTrue(impl.getIons() != null);