// Path: src/main/java/org/fintx/lang/Pair.java
// public class Pair<L, R> implements Serializable {
// 
//     /** Serialization version */
//     private static final long serialVersionUID = 4954918890077093841L;
// 
//     /** Left object */
//     public L left;
//     /** Right object */
//     public R right;
// 
//     /**
//      * <p>
//      * Obtains an immutable pair of from two objects inferring the generic types.
//      * </p>
//      * 
//      * <p>
//      * This factory allows the pair to be created using inference to obtain the generic types.
//      * </p>
//      * 
//      * @param <L> the left element type
//      * @param <R> the right element type
//      * @param left the left element, may be null
//      * @param right the right element, may be null
//      * @return a pair formed from the two parameters, not null
//      */
//     public static <L, R> Pair<L, R> of(final L left, final R right) {
//         return new Pair<L, R>(left, right);
//     }
// 
//     /**
//      * Create a new pair instance of two nulls.
//      */
//     public Pair() {
//         super();
//     }
// 
//     /**
//      * Create a new pair instance.
//      *
//      * @param left the left value, may be null
//      * @param right the right value, may be null
//      */
//     public Pair(final L left, final R right) {
//         super();
//         this.left = left;
//         this.right = right;
//     }
// 
//     // -----------------------------------------------------------------------
//     /**
//      * {@inheritDoc}
//      */
//     public L getLeft() {
//         return left;
//     }
// 
//     /**
//      * Sets the left element of the pair.
//      * 
//      * @param left the new value of the left element, may be null
//      */
//     public void setLeft(final L left) {
//         this.left = left;
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public R getRight() {
//         return right;
//     }
// 
//     /**
//      * Sets the right element of the pair.
//      * 
//      * @param right the new value of the right element, may be null
//      */
//     public void setRight(final R right) {
//         this.right = right;
//     }
// 
// }


import static org.junit.Assert.*;
import org.fintx.lang.Pair;
import org.junit.Test;

/**
 *  Copyright 2017 FinTx
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.fintx.lang;




/**
 * @author bluecreator(qiang.x.wang@gmail.com)
 *
 */
public class PairTest {

    @Test
    public void test() {
        Pair<String,String> pair1=new Pair<String,String>();
        pair1.setLeft("a");
        pair1.setRight("b");
        assertTrue(pair1.getLeft()=="a");;
        assertTrue(pair1.getRight()=="b");;
        Pair<String,String> pair2=new Pair<String,String>("a","b");
        assertTrue(pair2.getLeft()=="a");;

// Path: src/main/java/org/fintx/lang/Pair.java
// public class Pair<L, R> implements Serializable {
// 
//     /** Serialization version */
//     private static final long serialVersionUID = 4954918890077093841L;
// 
//     /** Left object */
//     public L left;
//     /** Right object */
//     public R right;
// 
//     /**
//      * <p>
//      * Obtains an immutable pair of from two objects inferring the generic types.
//      * </p>
//      * 
//      * <p>
//      * This factory allows the pair to be created using inference to obtain the generic types.
//      * </p>
//      * 
//      * @param <L> the left element type
//      * @param <R> the right element type
//      * @param left the left element, may be null
//      * @param right the right element, may be null
//      * @return a pair formed from the two parameters, not null
//      */
//     public static <L, R> Pair<L, R> of(final L left, final R right) {
//         return new Pair<L, R>(left, right);
//     }
// 
//     /**
//      * Create a new pair instance of two nulls.
//      */
//     public Pair() {
//         super();
//     }
// 
//     /**
//      * Create a new pair instance.
//      *
//      * @param left the left value, may be null
//      * @param right the right value, may be null
//      */
//     public Pair(final L left, final R right) {
//         super();
//         this.left = left;
//         this.right = right;
//     }
// 
//     // -----------------------------------------------------------------------
//     /**
//      * {@inheritDoc}
//      */
//     public L getLeft() {
//         return left;
//     }
// 
//     /**
//      * Sets the left element of the pair.
//      * 
//      * @param left the new value of the left element, may be null
//      */
//     public void setLeft(final L left) {
//         this.left = left;
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public R getRight() {
//         return right;
//     }
// 
//     /**
//      * Sets the right element of the pair.
//      * 
//      * @param right the new value of the right element, may be null
//      */
//     public void setRight(final R right) {
//         this.right = right;
//     }
// 
// }


// Path: src/test/java/org/fintx/lang/PairTest.java
import static org.junit.Assert.*;
import org.fintx.lang.Pair;
import org.junit.Test;

/**
 *  Copyright 2017 FinTx
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.fintx.lang;




/**
 * @author bluecreator(qiang.x.wang@gmail.com)
 *
 */
public class PairTest {

    @Test
    public void test() {
        Pair<String,String> pair1=new Pair<String,String>();
        pair1.setLeft("a");
        pair1.setRight("b");
        assertTrue(pair1.getLeft()=="a");;
        assertTrue(pair1.getRight()=="b");;
        Pair<String,String> pair2=new Pair<String,String>("a","b");
        assertTrue(pair2.getLeft()=="a");;

        assertTrue(pair2.getRight()=="b");;
