@@ -330,18 +330,22 @@ final class TinyMoonTests: XCTestCase {
330330 date = TimeTestHelper . formatDate ( year: 2024 , month: 06 , day: 21 , timeZone: pacificTimeZone)
331331 moon = TinyMoon . calculateMoonPhase ( date, timeZone: pacificTimeZone)
332332 XCTAssertEqual ( moon. moonPhase, . fullMoon)
333+ XCTAssertEqual ( moon. fullMoonName, " Strawberry Moon " )
333334
334335 date = TimeTestHelper . formatDate ( year: 2024 , month: 06 , day: 22 , timeZone: utcTimeZone)
335336 moon = TinyMoon . calculateMoonPhase ( date, timeZone: utcTimeZone)
336337 XCTAssertEqual ( moon. moonPhase, . fullMoon)
338+ XCTAssertEqual ( moon. fullMoonName, " Strawberry Moon " )
337339
338340 date = TimeTestHelper . formatDate ( year: 2024 , month: 06 , day: 22 , timeZone: pacificTimeZone)
339341 moon = TinyMoon . calculateMoonPhase ( date, timeZone: pacificTimeZone)
340342 XCTAssertNotEqual ( moon. moonPhase, . fullMoon)
343+ XCTAssertNil ( moon. fullMoonName)
341344
342345 date = TimeTestHelper . formatDate ( year: 2024 , month: 06 , day: 21 , timeZone: utcTimeZone)
343346 moon = TinyMoon . calculateMoonPhase ( date, timeZone: utcTimeZone)
344347 XCTAssertNotEqual ( moon. moonPhase, . fullMoon)
348+ XCTAssertNil ( moon. fullMoonName)
345349
346350
347351 // Full Moon on
@@ -350,37 +354,45 @@ final class TinyMoonTests: XCTestCase {
350354 date = TimeTestHelper . formatDate ( year: 2024 , month: 08 , day: 19 , timeZone: utcTimeZone)
351355 moon = TinyMoon . calculateMoonPhase ( date, timeZone: utcTimeZone)
352356 XCTAssertEqual ( moon. moonPhase, . fullMoon)
357+ XCTAssertEqual ( moon. fullMoonName, " Sturgeon Moon " )
353358
354359 date = TimeTestHelper . formatDate ( year: 2024 , month: 08 , day: 20 , timeZone: tokyoTimeZone)
355360 moon = TinyMoon . calculateMoonPhase ( date, timeZone: tokyoTimeZone)
356361 XCTAssertEqual ( moon. moonPhase, . fullMoon)
362+ XCTAssertEqual ( moon. fullMoonName, " Sturgeon Moon " )
357363
358364 date = TimeTestHelper . formatDate ( year: 2024 , month: 08 , day: 19 , timeZone: tokyoTimeZone)
359365 moon = TinyMoon . calculateMoonPhase ( date, timeZone: tokyoTimeZone)
360366 XCTAssertNotEqual ( moon. moonPhase, . fullMoon)
367+ XCTAssertNil ( moon. fullMoonName)
361368
362369 date = TimeTestHelper . formatDate ( year: 2024 , month: 08 , day: 20 , timeZone: utcTimeZone)
363370 moon = TinyMoon . calculateMoonPhase ( date, timeZone: utcTimeZone)
364371 XCTAssertNotEqual ( moon. moonPhase, . fullMoon)
372+ XCTAssertNil ( moon. fullMoonName)
365373
366374 // Full Moon on
367375 // - UTC: Nov 15 21:28
368376 // - Tokyo Nov 16 06:28
369377 date = TimeTestHelper . formatDate ( year: 2024 , month: 11 , day: 15 , timeZone: utcTimeZone)
370378 moon = TinyMoon . calculateMoonPhase ( date, timeZone: utcTimeZone)
371379 XCTAssertEqual ( moon. moonPhase, . fullMoon)
380+ XCTAssertEqual ( moon. fullMoonName, " Beaver Moon " )
372381
373382 date = TimeTestHelper . formatDate ( year: 2024 , month: 11 , day: 16 , timeZone: tokyoTimeZone)
374383 moon = TinyMoon . calculateMoonPhase ( date, timeZone: tokyoTimeZone)
375384 XCTAssertEqual ( moon. moonPhase, . fullMoon)
385+ XCTAssertEqual ( moon. fullMoonName, " Beaver Moon " )
376386
377387 date = TimeTestHelper . formatDate ( year: 2024 , month: 11 , day: 16 , timeZone: utcTimeZone)
378388 moon = TinyMoon . calculateMoonPhase ( date, timeZone: utcTimeZone)
379389 XCTAssertNotEqual ( moon. moonPhase, . fullMoon)
390+ XCTAssertNil ( moon. fullMoonName)
380391
381392 date = TimeTestHelper . formatDate ( year: 2024 , month: 11 , day: 15 , timeZone: tokyoTimeZone)
382393 moon = TinyMoon . calculateMoonPhase ( date, timeZone: tokyoTimeZone)
383394 XCTAssertNotEqual ( moon. moonPhase, . fullMoon)
395+ XCTAssertNil ( moon. fullMoonName)
384396 }
385397
386398 // These following moon phases happen within 5 hours of midnight, so these tests aim to check that the phase is calculated correctly and lands on the correct day
@@ -398,6 +410,7 @@ final class TinyMoonTests: XCTestCase {
398410 var date = TimeTestHelper . formatDate ( year: 2024 , month: 2 , day: 24 , hour: 4 , minute: 30 , timeZone: pacificTimeZone)
399411 var moon = TinyMoon . calculateMoonPhase ( date, timeZone: pacificTimeZone)
400412 XCTAssertEqual ( moon. moonPhase, . fullMoon)
413+ XCTAssertEqual ( moon. fullMoonName, " Snow Moon " )
401414
402415 // New moon on 3/10/2024 @ 01:00 PST
403416 date = TimeTestHelper . formatDate ( year: 2024 , month: 3 , day: 10 , hour: 1 , minute: 0 , timeZone: pacificTimeZone)
@@ -408,6 +421,7 @@ final class TinyMoonTests: XCTestCase {
408421 date = TimeTestHelper . formatDate ( year: 2024 , month: 3 , day: 25 , hour: 0 , minute: 0 , timeZone: pacificTimeZone)
409422 moon = TinyMoon . calculateMoonPhase ( date, timeZone: pacificTimeZone)
410423 XCTAssertEqual ( moon. moonPhase, . fullMoon)
424+ XCTAssertEqual ( moon. fullMoonName, " Worm Moon " )
411425
412426 // New moon on 3/10/2024 @ 01:00 PST
413427 date = TimeTestHelper . formatDate ( year: 2024 , month: 3 , day: 10 , hour: 1 , minute: 0 , timeZone: pacificTimeZone)
@@ -428,6 +442,7 @@ final class TinyMoonTests: XCTestCase {
428442 date = TimeTestHelper . formatDate ( year: 2024 , month: 12 , day: 15 , hour: 1 , minute: 01 , timeZone: pacificTimeZone)
429443 moon = TinyMoon . calculateMoonPhase ( date, timeZone: pacificTimeZone)
430444 XCTAssertEqual ( moon. moonPhase, . fullMoon)
445+ XCTAssertEqual ( moon. fullMoonName, " Cold Moon " )
431446
432447 // MARK: - UTC margin of error tests
433448 // Values from https://www.timeanddate.com/moon/phases/timezone/utc
@@ -441,6 +456,7 @@ final class TinyMoonTests: XCTestCase {
441456 date = TimeTestHelper . formatDate ( year: 2024 , month: 4 , day: 23 , hour: 23 , minute: 48 , timeZone: utcTimeZone)
442457 moon = TinyMoon . calculateMoonPhase ( date, timeZone: utcTimeZone)
443458 XCTAssertEqual ( moon. moonPhase, . fullMoon)
459+ XCTAssertEqual ( moon. fullMoonName, " Pink Moon " )
444460
445461 // New moon on 9/3/2024 @ 01:55 UTC
446462 date = TimeTestHelper . formatDate ( year: 2024 , month: 9 , day: 3 , hour: 1 , minute: 55 , timeZone: utcTimeZone)
0 commit comments