code: private boolean isCisTransEndPoint(int idx){
          IAtom atom  = container.getAtom(idx);
          // error: uninit atom
          if (atom.getAtomicNumber() == null ||
              atom.getFormalCharge() == null ||
              atom.getImplicitHydrogenCount() == null)
              return false;
          final int chg    = atom.getFormalCharge();
          final int btypes = getBondTypes(idx);
          switch (atom.getAtomicNumber()) {
              case 6:  // C
              case 14: // Si
              case 32: // Ge
                  // double, single, single
                  return chg == 0 && btypes == 0x0102;
              case 7:  // N
                  if (chg == 0) // double, single
                      return btypes == 0x0101;
                  if (chg == +1) // double, single, single
                      return btypes == 0x0102;
              default:
                  return false;
          }
      }
docs: Checks if the atom can be involved in a double-bond.
  @param idx atom idx
  @return the atom at index (idx) is valid for a double bond
  @see <a href="http://www.inchi-trust.org/download/104/InChI_TechMan.pdf">Double bond stereochemistry, InChI Technical Manual</a>