defmodule ArmstrongNumberTest do use ExUnit.Case test "Zero is an Armstrong number" do assert ArmstrongNumber.valid?(0) end test "Single digit numbers are Armstrong numbers" do assert ArmstrongNumber.valid?(5) end test "There are no two-digit Armstrong Numbers" do refute ArmstrongNumber.valid?(10) end test "Three-digit number that is an Armstrong number" do assert ArmstrongNumber.valid?(153) end test "Three-digit number that is not an Armstrong number" do refute ArmstrongNumber.valid?(100) end test "Four-digit number that is an Armstrong number" do assert ArmstrongNumber.valid?(9474) end test "Four-digit number that is not an Armstrong number" do refute ArmstrongNumber.valid?(9475) end test "Seven-digit number that is an Armstrong number" do assert ArmstrongNumber.valid?(9_926_315) end test "Seven-digit number that is not an Armstrong number" do refute ArmstrongNumber.valid?(9_926_134) end test "Armstrong number containing seven zeroes" do assert ArmstrongNumber.valid?(186_709_961_001_538_790_100_634_132_976_990) end test "The largest and last Armstrong number" do assert ArmstrongNumber.valid?(115_132_219_018_763_992_565_095_597_973_971_522_401) end end