@@ -123,6 +123,34 @@ public function testisAttributeValidAttributeWithInValidKeyValue()
123123 $ this ->assertFalse (Validator::isAttributeValid (5.5 , 'value ' ));
124124 }
125125
126+ public function testIsFiniteNumberWithInvalidValues ()
127+ {
128+ $ this ->assertFalse (Validator::IsFiniteNumber ('HelloWorld ' ));
129+ $ this ->assertFalse (Validator::IsFiniteNumber (true ));
130+ $ this ->assertFalse (Validator::IsFiniteNumber (false ));
131+ $ this ->assertFalse (Validator::IsFiniteNumber (null ));
132+ $ this ->assertFalse (Validator::IsFiniteNumber ((object )[]));
133+ $ this ->assertFalse (Validator::IsFiniteNumber ([]));
134+ $ this ->assertFalse (Validator::IsFiniteNumber (INF ));
135+ $ this ->assertFalse (Validator::IsFiniteNumber (-INF ));
136+ $ this ->assertFalse (Validator::IsFiniteNumber (NAN ));
137+ $ this ->assertFalse (Validator::IsFiniteNumber (pow (2 ,53 ) + 1 ));
138+ $ this ->assertFalse (Validator::IsFiniteNumber (-pow (2 ,53 ) - 1 ));
139+ $ this ->assertFalse (Validator::IsFiniteNumber (pow (2 ,53 ) + 2.0 ));
140+ $ this ->assertFalse (Validator::IsFiniteNumber (-pow (2 ,53 ) - 2.0 ));
141+ }
142+
143+ public function testIsFiniteNumberWithValidValues ()
144+ {
145+ $ this ->assertTrue (Validator::IsFiniteNumber (0 ));
146+ $ this ->assertTrue (Validator::IsFiniteNumber (5 ));
147+ $ this ->assertTrue (Validator::IsFiniteNumber (5.5 ));
148+ // float pow(2,53) + 1.0 evaluates to float pow(2,53)
149+ $ this ->assertTrue (Validator::IsFiniteNumber (pow (2 ,53 ) + 1.0 ));
150+ $ this ->assertTrue (Validator::IsFiniteNumber (-pow (2 ,53 ) - 1.0 ));
151+ $ this ->assertTrue (Validator::IsFiniteNumber (pow (2 ,53 )));
152+ }
153+
126154 public function testAreEventTagsValidValidEventTags ()
127155 {
128156 // Empty attributes
0 commit comments