static Normalization parseNormalization(String expr, String c, String mu, String z) { if (mu != null && !"H3".equals(expr)) { throw new RuntimeException( "parameter mu only makes sense for normalization H3"); } if (z != null && !"Z".equals(expr)) { throw new RuntimeException( "parameter z only makes sense for normalization Z"); } if (c != null && !("H1".equals(expr) || "H2".equals(expr))) { throw new RuntimeException( "parameter c only makese sense for normalizations H1 and H2"); } if ("H1".equals(expr)) { return (c != null) ? new NormalizationH1(Float.parseFloat(c)) : new NormalizationH1(); } else if ("H2".equals(expr)) { return (c != null) ? new NormalizationH2(Float.parseFloat(c)) : new NormalizationH2(); } else if ("H3".equals(expr)) { return (mu != null) ? new NormalizationH3(Float.parseFloat(mu)) : new NormalizationH3(); } else if ("Z".equals(expr)) { return (z != null) ? new NormalizationZ(Float.parseFloat(z)) : new NormalizationZ(); } else if ("none".equals(expr)) { return new Normalization.NoNormalization(); } else { throw new RuntimeException("Invalid normalization: " + expr); } }
/** spl/df/h2 with default parameters */ public void test() throws Exception { Similarity sim = getSimilarity("text"); assertEquals(IBSimilarity.class, sim.getClass()); IBSimilarity ib = (IBSimilarity) sim; assertEquals(DistributionSPL.class, ib.getDistribution().getClass()); assertEquals(LambdaDF.class, ib.getLambda().getClass()); assertEquals(NormalizationH2.class, ib.getNormalization().getClass()); }
/** dfr with default parameters */ public void test() throws Exception { Similarity sim = getSimilarity("text"); assertEquals(DFRSimilarity.class, sim.getClass()); DFRSimilarity dfr = (DFRSimilarity) sim; assertEquals(BasicModelIF.class, dfr.getBasicModel().getClass()); assertEquals(AfterEffectB.class, dfr.getAfterEffect().getClass()); assertEquals(NormalizationH2.class, dfr.getNormalization().getClass()); }
/** LUCENE-3566 */ public void testParameterC() throws Exception { Similarity sim = getSimilarity("text_paramc"); assertEquals(DFRSimilarity.class, sim.getClass()); DFRSimilarity dfr = (DFRSimilarity) sim; assertEquals(BasicModelP.class, dfr.getBasicModel().getClass()); assertEquals(AfterEffectL.class, dfr.getAfterEffect().getClass()); assertEquals(NormalizationH2.class, dfr.getNormalization().getClass()); NormalizationH2 norm = (NormalizationH2) dfr.getNormalization(); assertEquals(7f, norm.getC(), 0.01f); }