// Path: src/main/java/sssj/io/Format.java
// public enum Format {
//   SSSJ {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       return new Function<String, Vector>() {
//         public Vector apply(String input) {
//           String[] tokens = input.split("\\s");
//           long ts = Long.parseLong(tokens[0]);
//           Vector result = new Vector(ts);
//           for (int i = 1; i < tokens.length; i++) {
//             String[] parts = tokens[i].split(":");
//             int key = Integer.parseInt(parts[0]);
//             double val = Double.parseDouble(parts[1]);
//             result.put(key, val);
//           }
//           return result;
//         }
//       };
//     }
//   },
// 
//   SVMLIB {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       return new Function<String, Vector>() {
//         public Vector apply(String input) {
//           String[] tokens = input.split("\\s");
//           // ignore class label tokens[0]
//           Vector result = new Vector();
//           for (int i = 1; i < tokens.length; i++) {
//             String[] parts = tokens[i].split(":");
//             int key = Integer.parseInt(parts[0]);
//             double val = Double.parseDouble(parts[1]);
//             result.put(key, val);
//           }
//           return result;
//         }
//       };
//     }
//   },
// 
//   VW {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       return new Function<String, Vector>() {
//         public Vector apply(String input) {
//           String[] tokens = input.split("\\s");
//           // ignore class label tokens[0] and namespace tokens[1]
//           Vector result = new Vector();
//           for (int i = 2; i < tokens.length; i++) {
//             String[] parts = tokens[i].split(":");
//             int key = Integer.parseInt(parts[0]);
//             double val = Double.parseDouble(parts[1]);
//             result.put(key, val);
//           }
//           return result;
//         }
//       };
//     }
//   },
// 
//   BINARY {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       throw new UnsupportedOperationException("Binary format does not need a parser");
//     }
//   };
// 
//   abstract public Function<String, Vector> getRecordParser();
// }


import static org.junit.Assert.assertEquals;
import org.junit.Test;
import sssj.io.Format;
package sssj.io;




public class ParserFactoryTest {
  private static final String vw_example = "-1 3018:0.30226897258187 4028:0.21384332469612 8145:0.162488218352206 8617:0.143218756157527 8656:0.269024762292572 11646:0.25355901006852 13549:0.127390094515473 14143:0.142682425043427 15430:0.142445657672089 18150:0.0866057074792051 19585:0.114039541131034 21010:0.245524202230314 24428:0.20251364605078 27170:0.230395320302119 27307:0.112952537620285 29568:0.539073784182882 33035:0.146617340760801 35684:0.135815231166287 37664:0.0856990106295996 39724:0.108603031289468 42362:0.0762167284131916 42841:0.0876971237607474 43330:0.172808060913155 44957:0.155120603794981 46694:0.133042224445797";

  @Test
  public void testVW() {
// Path: src/main/java/sssj/io/Format.java
// public enum Format {
//   SSSJ {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       return new Function<String, Vector>() {
//         public Vector apply(String input) {
//           String[] tokens = input.split("\\s");
//           long ts = Long.parseLong(tokens[0]);
//           Vector result = new Vector(ts);
//           for (int i = 1; i < tokens.length; i++) {
//             String[] parts = tokens[i].split(":");
//             int key = Integer.parseInt(parts[0]);
//             double val = Double.parseDouble(parts[1]);
//             result.put(key, val);
//           }
//           return result;
//         }
//       };
//     }
//   },
// 
//   SVMLIB {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       return new Function<String, Vector>() {
//         public Vector apply(String input) {
//           String[] tokens = input.split("\\s");
//           // ignore class label tokens[0]
//           Vector result = new Vector();
//           for (int i = 1; i < tokens.length; i++) {
//             String[] parts = tokens[i].split(":");
//             int key = Integer.parseInt(parts[0]);
//             double val = Double.parseDouble(parts[1]);
//             result.put(key, val);
//           }
//           return result;
//         }
//       };
//     }
//   },
// 
//   VW {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       return new Function<String, Vector>() {
//         public Vector apply(String input) {
//           String[] tokens = input.split("\\s");
//           // ignore class label tokens[0] and namespace tokens[1]
//           Vector result = new Vector();
//           for (int i = 2; i < tokens.length; i++) {
//             String[] parts = tokens[i].split(":");
//             int key = Integer.parseInt(parts[0]);
//             double val = Double.parseDouble(parts[1]);
//             result.put(key, val);
//           }
//           return result;
//         }
//       };
//     }
//   },
// 
//   BINARY {
//     @Override
//     public Function<String, Vector> getRecordParser() {
//       throw new UnsupportedOperationException("Binary format does not need a parser");
//     }
//   };
// 
//   abstract public Function<String, Vector> getRecordParser();
// }


// Path: src/test/java/sssj/io/ParserFactoryTest.java
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import sssj.io.Format;

package sssj.io;




public class ParserFactoryTest {
  private static final String vw_example = "-1 3018:0.30226897258187 4028:0.21384332469612 8145:0.162488218352206 8617:0.143218756157527 8656:0.269024762292572 11646:0.25355901006852 13549:0.127390094515473 14143:0.142682425043427 15430:0.142445657672089 18150:0.0866057074792051 19585:0.114039541131034 21010:0.245524202230314 24428:0.20251364605078 27170:0.230395320302119 27307:0.112952537620285 29568:0.539073784182882 33035:0.146617340760801 35684:0.135815231166287 37664:0.0856990106295996 39724:0.108603031289468 42362:0.0762167284131916 42841:0.0876971237607474 43330:0.172808060913155 44957:0.155120603794981 46694:0.133042224445797";

  @Test
  public void testVW() {
    Format f = Format.SVMLIB;