GEN-3e: C-locus colourpoint naming (CP-<base> for A-+cchm; Marder/Siam/Zobel/Zobel-Hell for aa+cchm); chch kept as Hermelin/Himalaya via base-match
This commit is contained in:
@@ -174,7 +174,7 @@ describe('Farbschlag catalog', () => {
|
||||
|
||||
it('falls back to Unbekannter Farbschlag for uncatalogued genotypes', () => {
|
||||
// E-dominant (no Fuchs/Schimmel family) + an uncatalogued cchm/dd/gg/pp combo.
|
||||
const match = farbschlagFor(fromDisplayString('aa cchmcchm dd EE gg pp spsp rere'))
|
||||
const match = farbschlagFor(fromDisplayString('aa CC dd EE gg pp spsp rere'))
|
||||
expect(match.unknown).toBe(true)
|
||||
expect(match.name).toBe('Unbekannter Farbschlag')
|
||||
})
|
||||
@@ -222,7 +222,7 @@ describe('Farbschlag catalog', () => {
|
||||
it('genotypeToFarbschlag (DATA-1 denormalization contract) returns the plain name', () => {
|
||||
expect(genotypeToFarbschlag(wildType())).toBe('Agouti')
|
||||
expect(genotypeToFarbschlag(fromDisplayString('aa CC DD EE GG pp spsp rere'))).toBe('Platin')
|
||||
expect(genotypeToFarbschlag(fromDisplayString('aa cchmcchm dd EE gg pp spsp rere'))).toBe(
|
||||
expect(genotypeToFarbschlag(fromDisplayString('aa CC dd EE gg pp spsp rere'))).toBe(
|
||||
'Unbekannter Farbschlag',
|
||||
)
|
||||
})
|
||||
@@ -399,3 +399,33 @@ describe('GEN-3d: dominance tiebreak for unknown loci', () => {
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
describe('GEN-3e: C-locus colourpoint naming', () => {
|
||||
const name = (s: string) => genotypeToFarbschlag(fromDisplayString(s))
|
||||
|
||||
it('A- + cchm/cchm -> CP-<base colour> (CP-Silberagouti example)', () => {
|
||||
expect(name('AA cchmcchm DD EE gg PP spsp rere')).toBe('CP-Silberagouti')
|
||||
expect(name('AA cchmcchm DD EE GG PP spsp rere')).toBe('CP-Agouti')
|
||||
})
|
||||
|
||||
it('A- + cchm/ch -> CP-<base colour>', () => {
|
||||
expect(name('AA cchmch DD EE GG PP spsp rere')).toBe('CP-Agouti')
|
||||
})
|
||||
|
||||
it('aa fixed colourpoint names (Marder/Siam/Zobel/Zobel-Hell)', () => {
|
||||
expect(name('aa cchmcchm DD EE GG PP spsp rere')).toBe('Marder')
|
||||
expect(name('aa cchmch DD EE GG PP spsp rere')).toBe('Siam')
|
||||
expect(name('aa cchmcchm DD EE gg PP spsp rere')).toBe('Zobel')
|
||||
expect(name('aa cchmch DD EE gg PP spsp rere')).toBe('Zobel-Hell')
|
||||
})
|
||||
|
||||
it('chch stays Hermelin (aa) / Himalaya (A-); full C => no CP', () => {
|
||||
expect(name('aa chch DD EE GG PP spsp rere')).toBe('Hermelin')
|
||||
expect(name('AA chch DD EE GG PP spsp rere')).toBe('Himalaya')
|
||||
expect(name('AA CC DD EE GG PP spsp rere')).toBe('Agouti') // one full C -> no colourpoint
|
||||
})
|
||||
|
||||
it('colourpoint composes with the Schecke modifier', () => {
|
||||
expect(name('aa cchmcchm DD EE GG PP Spsp rere')).toBe('Marder Schecke')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user