#!/usr/bin/env julia using Test function string_start_index(s, width=4) delta = width - 1 for i in 1:length(s)-delta if length(Set(s[i:i+delta])) == width println(i, " ", s[i:i+delta]) return i + delta end end end function file_start_index(infile, width=4) io = open(infile, "r") data = readchomp(io) close(io) return string_start_index(data, width) end function test() @testset "elf signal start ex" verbose=true begin @test string_start_index("mjqjpqmgbljsphdztnvjfqwrcgsmlb") == 7 @test string_start_index("bvwbjplbgvbhsrlpgdmjqwftvncz") == 5 @test string_start_index("nppdvjthqldpwncqszvftbrmjlhg") == 6 @test string_start_index("nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg") == 10 @test string_start_index("zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw") == 11 @test string_start_index("wewewewewewewewewewewewewebo") == 28 end @testset "elf signal start in" verbose=true begin @test file_start_index("input.txt") == 1142 end @testset "elf signal msg ex" verbose=true begin @test string_start_index("mjqjpqmgbljsphdztnvjfqwrcgsmlb", 14) == 19 @test string_start_index("bvwbjplbgvbhsrlpgdmjqwftvncz", 14) == 23 @test string_start_index("nppdvjthqldpwncqszvftbrmjlhg", 14) == 23 @test string_start_index("nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg", 14) == 29 @test string_start_index("zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw", 14) == 26 end @testset "elf signal msg in" verbose=true begin @test file_start_index("input.txt", 14) == 2803 end end function main() if size(ARGS, 1) == 0 test() else infile = ARGS[1] println("infile = ", infile) println("start index: ", file_start_index(infile)) end end main()