@@ -92,6 +92,18 @@ public void zaddWithParams() {
9292    status  = jedis .zadd ("foo" , scoreMembers , ZAddParams .zAddParams ().ch ());
9393    assertEquals (2L , status );
9494
95+     // lt: only update existing elements if the new score is less than the current score. 
96+     jedis .zadd ("foo" , 3d , "a" , ZAddParams .zAddParams ().lt ());
97+     assertEquals (Double .valueOf (2d ), jedis .zscore ("foo" , "a" ));
98+     jedis .zadd ("foo" , 1d , "a" , ZAddParams .zAddParams ().lt ());
99+     assertEquals (Double .valueOf (1d ), jedis .zscore ("foo" , "a" ));
100+ 
101+     // gt: only update existing elements if the new score is greater than the current score. 
102+     jedis .zadd ("foo" , 0d , "b" , ZAddParams .zAddParams ().gt ());
103+     assertEquals (Double .valueOf (1d ), jedis .zscore ("foo" , "b" ));
104+     jedis .zadd ("foo" , 2d , "b" , ZAddParams .zAddParams ().gt ());
105+     assertEquals (Double .valueOf (2d ), jedis .zscore ("foo" , "b" ));
106+ 
95107    // binary 
96108    jedis .del (bfoo );
97109
@@ -111,6 +123,18 @@ public void zaddWithParams() {
111123    // ch: return count of members not only added, but also updated 
112124    status  = jedis .zadd (bfoo , binaryScoreMembers , ZAddParams .zAddParams ().ch ());
113125    assertEquals (2L , status );
126+ 
127+     // lt: only update existing elements if the new score is less than the current score. 
128+     jedis .zadd (bfoo , 3d , ba , ZAddParams .zAddParams ().lt ());
129+     assertEquals (Double .valueOf (2d ), jedis .zscore (bfoo , ba ));
130+     jedis .zadd (bfoo , 1d , ba , ZAddParams .zAddParams ().lt ());
131+     assertEquals (Double .valueOf (1d ), jedis .zscore (bfoo , ba ));
132+ 
133+     // gt: only update existing elements if the new score is greater than the current score. 
134+     jedis .zadd (bfoo , 0d , bb , ZAddParams .zAddParams ().gt ());
135+     assertEquals (Double .valueOf (1d ), jedis .zscore (bfoo , bb ));
136+     jedis .zadd (bfoo , 2d , bb , ZAddParams .zAddParams ().gt ());
137+     assertEquals (Double .valueOf (2d ), jedis .zscore (bfoo , bb ));
114138  }
115139
116140  @ Test 
@@ -568,48 +592,48 @@ public void zpopmax() {
568592    jedis .zadd ("foo" , 10d , "b" );
569593    jedis .zadd ("foo" , 0.1d , "c" );
570594    jedis .zadd ("foo" , 2d , "d" );
571-      
595+ 
572596    Tuple  actual  = jedis .zpopmax ("foo" );
573597    Tuple  expected  = new  Tuple ("b" , 10d );
574598    assertEquals (expected , actual );
575-      
599+ 
576600    actual  = jedis .zpopmax ("foo" );
577601    expected  = new  Tuple ("d" , 2d );
578602    assertEquals (expected , actual );
579-      
603+ 
580604    actual  = jedis .zpopmax ("foo" );
581605    expected  = new  Tuple ("a" , 1d );
582606    assertEquals (expected , actual );
583-      
607+ 
584608    actual  = jedis .zpopmax ("foo" );
585609    expected  = new  Tuple ("c" , 0.1d );
586610    assertEquals (expected , actual );
587-      
611+ 
588612    // Empty 
589613    actual  = jedis .zpopmax ("foo" );
590614    assertNull (actual );
591-      
615+ 
592616    // Binary 
593617    jedis .zadd (bfoo , 1d , ba );
594618    jedis .zadd (bfoo , 10d , bb );
595619    jedis .zadd (bfoo , 0.1d , bc );
596620    jedis .zadd (bfoo , 2d , ba );
597-      
621+ 
598622    // First 
599623    actual  = jedis .zpopmax (bfoo );
600624    expected  = new  Tuple (bb , 10d );
601625    assertEquals (expected , actual );
602-      
626+ 
603627    // Second 
604628    actual  = jedis .zpopmax (bfoo );
605629    expected  = new  Tuple (ba , 2d );
606630    assertEquals (expected , actual );
607-      
631+ 
608632    // Third 
609633    actual  = jedis .zpopmax (bfoo );
610634    expected  = new  Tuple (bc , 0.1d );
611635    assertEquals (expected , actual );
612-      
636+ 
613637    // Empty 
614638    actual  = jedis .zpopmax (bfoo );
615639    assertNull (actual );
@@ -622,35 +646,35 @@ public void zpopmaxWithCount() {
622646    jedis .zadd ("foo" , 0.1d , "c" );
623647    jedis .zadd ("foo" , 2d , "d" );
624648    jedis .zadd ("foo" , 0.03 , "e" );
625-      
649+ 
626650    Set <Tuple > actual  = jedis .zpopmax ("foo" , 2 );
627651    assertEquals (2 , actual .size ());
628-      
652+ 
629653    Set <Tuple > expected  = new  LinkedHashSet <Tuple >();
630654    expected .add (new  Tuple ("b" , 10d ));
631655    expected .add (new  Tuple ("d" , 2d ));
632656    assertEquals (expected , actual );
633-      
657+ 
634658    actual  = jedis .zpopmax ("foo" , 3 );
635659    assertEquals (3 , actual .size ());
636-      
660+ 
637661    expected .clear ();
638662    expected .add (new  Tuple ("a" , 1d ));
639663    expected .add (new  Tuple ("c" , 0.1d ));
640664    expected .add (new  Tuple ("e" , 0.03d ));
641665    assertEquals (expected , actual );
642-      
666+ 
643667    // Empty 
644668    actual  = jedis .zpopmax ("foo" , 1 );
645669    expected .clear ();
646670    assertEquals (expected , actual );
647-      
671+ 
648672    // Binary 
649673    jedis .zadd (bfoo , 1d , ba );
650674    jedis .zadd (bfoo , 10d , bb );
651675    jedis .zadd (bfoo , 0.1d , bc );
652676    jedis .zadd (bfoo , 2d , ba );
653-      
677+ 
654678    // First 
655679    actual  = jedis .zpopmax (bfoo , 1 );
656680    expected .clear ();
@@ -662,19 +686,19 @@ public void zpopmaxWithCount() {
662686    expected .clear ();
663687    expected .add (new  Tuple (ba , 2d ));
664688    assertEquals (expected , actual );
665-      
689+ 
666690    // Last 2 (just 1, because 1 was overwritten) 
667691    actual  = jedis .zpopmax (bfoo , 1 );
668692    expected .clear ();
669693    expected .add (new  Tuple (bc , 0.1d ));
670694    assertEquals (expected , actual );
671-      
695+ 
672696    // Empty 
673697    actual  = jedis .zpopmax (bfoo , 1 );
674698    expected .clear ();
675699    assertEquals (expected , actual );
676700  }
677-    
701+ 
678702  @ Test 
679703  public  void  zpopmin () {
680704
0 commit comments