Sentido coerente com o padrão
Verifica se `direction_id` corresponde ao sentido indicado na segunda parte de `pattern_id`.
Propriedades da regra
| Propriedade | Valor |
|---|---|
| Rule ID | trips_direction_id_matches_feed_pattern_direction |
| Ficheiro | trips.txt |
| Campos | pattern_id, direction_id |
| Tipo | Identificador, Enumeração |
| Severidade | Obrigatório |
Descrição dos campos:
pattern_id: identifica o padrão e deve ter três partes separadas por sublinhados.direction_id: indica o sentido da viagem e tem de corresponder à segunda parte do padrão.
Mais informação em trips.txt.
Como funciona
O padrão tem de ter exatamente três partes. A segunda parte tem de ser 0 ou 1 e coincidir com direction_id. A regra não valida as restantes partes do padrão.
A regra avalia cada linha do trips.txt, seguindo os passos abaixo por ordem, até um deles dar o resultado.
| # | Pergunta | Se sim | Se não |
|---|---|---|---|
| 1 | pattern_id ou direction_id está vazio? | Se a configuração da regra estiver ativa, reporta o problema | Segue para o passo 2 |
| 2 | A configuração da regra desativa a validação? | ✅ Passa | Segue para o passo 3 |
| 3 | pattern_id tem exatamente três partes separadas por sublinhados? | Segue para o passo 4 | ❌ Reporta o problema: padrão inválido |
| 4 | A segunda parte é o número 0 ou 1? | Segue para o passo 5 | ❌ Reporta o problema: sentido inválido no padrão |
| 5 | A segunda parte coincide com direction_id? | ✅ Passa | ❌ Reporta o problema: sentidos diferentes |
Como se relacionam
Em 1001_0_1, a segunda parte é 0. Por isso, a mesma linha tem de usar direction_id=0.
Exemplos
pattern_id | direction_id | Resultado | Porquê |
|---|---|---|---|
1001_0_1 | 0 | ✅ Passa | Sentidos iguais |
| Vazio | 0 | ❌ Problema | Falta o padrão |
1001_0 | 0 | ❌ Problema | Faltam partes |
1001_X_1 | 0 | ❌ Problema | Sentido não numérico |
1001_1_1 | 0 | ❌ Problema | Sentidos diferentes |
Como corrigir
| Problema | Causa provável | O que fazer |
|---|---|---|
| Campos em falta | pattern_id ou direction_id está vazio | Preencher pattern_id e direction_id em trips.txt |
| Padrão inválido | pattern_id não tem três partes | Corrigir pattern_id em trips.txt para três partes separadas por sublinhados |
| Sentido inválido no padrão | A segunda parte de pattern_id não é 0 nem 1 | Corrigir a segunda parte de pattern_id em trips.txt |
| Sentidos diferentes | direction_id difere da segunda parte de pattern_id | Alinhar direction_id e pattern_id na linha de trips.txt |